Intercepter coller des événements en Javascript
Est-il un moyen d'intercepter la pâte d'événements en JavaScript et d'obtenir la valeur brute, modifier, et de le configurer de l'élément DOM de la valeur à la valeur modifiée?
Par exemple, j'ai un utilisateur qui tente de copier et de coller une chaîne de caractères avec des espaces, et la longueur de la chaîne dépasse la longueur maximum de ma zone de texte. Je veux intercepter le texte, supprimer les espaces, puis définir la zone de texte de la valeur avec le changement de la valeur.
Est-ce possible?
- Assurez-vous, par exemple, stackoverflow.com/questions/2242442/.... Ou: jsfiddle.net/6skZQ.
- Votre jsFiddle exemple ne fonctionne pas dans Firefox, IE ou Opera.
- En bas: Merci pour remarquer, croix-navigateur, presse-papiers funcionality semble être une douleur.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez intercepter la pâte événement par la fixation d'un "onpaste" de gestionnaire et d'obtenir le texte collé à l'aide de "
window.clipboardData.getData('Text')
" dans IE ou "event.clipboardData.getData('text/plain')
" dans d'autres navigateurs.Par exemple:
Comme @pimvdb notes, vous aurez besoin d'utiliser "
e.originalEvent.clipboardData
" si à l'aide de jQuery.myElement.Value = pastedText.split(' ').join('');
il définit la valeur à l'origine collé valeur. Des idées? J'ai ajouté cette casealert(myElement.Value);
et je suis de retour vrai et la valeur semble correct dans mon alerte, mais ne s'affiche pas correctement sur ma page.return true
à la fin.pastedText
. Droit?Comme il arrive, j'ai répondu à une question similaire plus tôt aujourd'hui. En bref, vous avez besoin d'un hack pour rediriger le signe d'un écran textarea quand la pâte événement se déclenche.
J'avais besoin pour mettre en œuvre un "trim" sur ce qui a été collé (supprimer toutes les attaque et de fuite des espaces) tout en permettant l'utilisation de la barre d'espace.
Pour Ctrl+V Maj+Insérer et droit de la souris-cliquez sur Coller, voici ce que j'ai trouvé travaillé dans FF, IE11 et Chrome comme de 2017-04-22:
Deux mises en garde:
Si il y a déjà du texte lorsque la pâte se produit, le parage se produit sur le résultat entier, et pas seulement ce qu'il soit collé.
Si l'utilisateur tape l'espace ou la chambre d'hôte ou Del et puis colle, de coupe n'aura pas lieu.