Per completare le risposte, ecco alcuni esempi concreti di rimozione di eventi quando visiti siti Web e non hai il controllo sul codice HTML e JavaScript generato.
Alcuni siti Web fastidiosi ti impediscono di copiare e incollare i nomi utente sui moduli di accesso, che potrebbero essere facilmente aggirati se l' onpasteevento fosse aggiunto con l' onpaste="return false"attributo HTML. In questo caso è sufficiente fare clic con il pulsante destro del mouse sul campo di immissione, selezionare "Ispeziona elemento" in un browser come Firefox e rimuovere l'attributo HTML.
Tuttavia, se l'evento è stato aggiunto tramite JavaScript in questo modo:
document.getElementById("lyca_login_mobile_no").onpaste = function(){return false};
Dovremo rimuovere l'evento anche tramite JavaScript:
document.getElementById("lyca_login_mobile_no").onpaste = null;
Nel mio esempio, ho utilizzato l'ID "lyca_login_mobile_no" poiché era l'ID di immissione del testo utilizzato dal sito web che stavo visitando.
Un altro modo per rimuovere l'evento (che rimuoverà anche tutti gli eventi) è rimuovere il nodo e crearne uno nuovo, come dobbiamo fare se è addEventListenerstato utilizzato per aggiungere eventi utilizzando una funzione anonima che non possiamo rimuovere con removeEventListener. Questo può essere fatto anche tramite la console del browser ispezionando un elemento, copiando il codice HTML, rimuovendo il codice HTML e quindi incollando il codice HTML nello stesso punto.
Può anche essere fatto più velocemente e automatizzato tramite JavaScript:
var oldNode = document.getElementById("lyca_login_mobile_no");
var newNode = oldNode.cloneNode(true);
oldNode.parentNode.insertBefore(newNode, oldNode);
oldNode.parentNode.removeChild(oldNode);
Aggiornamento: se l'app Web è stata creata utilizzando un framework JavaScript come Angular, sembra che le soluzioni precedenti non funzionino o che l'app non funzionino. Un'altra soluzione alternativa per consentire l'incollaggio sarebbe impostare il valore tramite JavaScript:
document.getElementById("lyca_login_mobile_no").value = "username";
Al momento, non so se esiste un modo per rimuovere tutti gli eventi di convalida e restrizione dei moduli senza interrompere un'app scritta interamente in JavaScript come Angular.