Pour compléter les réponses, voici des exemples concrets de suppression d'événements lorsque vous visitez des sites Web et que vous n'avez pas de contrôle sur le code HTML et JavaScript généré.
Certains sites Web ennuyeux vous empêchent de copier-coller les noms d'utilisateur sur les formulaires de connexion, ce qui pourrait facilement être contourné si l' onpaste
événement était ajouté avec l' onpaste="return false"
attribut HTML. Dans ce cas, il suffit de faire un clic droit sur le champ de saisie, de sélectionner «Inspecter l'élément» dans un navigateur comme Firefox et de supprimer l'attribut HTML.
Cependant, si l'événement a été ajouté via JavaScript comme ceci:
document.getElementById("lyca_login_mobile_no").onpaste = function(){return false};
Nous devrons également supprimer l'événement via JavaScript:
document.getElementById("lyca_login_mobile_no").onpaste = null;
Dans mon exemple, j'ai utilisé l'ID "lyca_login_mobile_no" car il s'agissait de l'ID d'entrée de texte utilisé par le site Web que je visitais.
Une autre façon de supprimer l'événement (qui supprimera également tous les événements) est de supprimer le nœud et d'en créer un nouveau, comme nous devons le faire si a addEventListener
été utilisé pour ajouter des événements à l'aide d'une fonction anonyme que nous ne pouvons pas supprimer avec removeEventListener
. Cela peut également être fait via la console du navigateur en inspectant un élément, en copiant le code HTML, en supprimant le code HTML, puis en collant le code HTML au même endroit.
Cela peut également être fait plus rapidement et automatisé via JavaScript:
var oldNode = document.getElementById("lyca_login_mobile_no");
var newNode = oldNode.cloneNode(true);
oldNode.parentNode.insertBefore(newNode, oldNode);
oldNode.parentNode.removeChild(oldNode);
Mise à jour: si l'application Web est créée à l'aide d'un framework JavaScript comme Angular, il semble que les solutions précédentes ne fonctionnent pas ou ne cassent pas l'application. Une autre solution de contournement pour autoriser le collage consiste à définir la valeur via JavaScript:
document.getElementById("lyca_login_mobile_no").value = "username";
Pour le moment, je ne sais pas s'il existe un moyen de supprimer tous les événements de validation et de restriction de formulaire sans casser une application entièrement écrite en JavaScript comme Angular.