Para completar las respuestas, aquí hay ejemplos del mundo real de cómo eliminar eventos cuando visita sitios web y no tiene control sobre el código HTML y JavaScript generado.
Algunos sitios web molestos le impiden copiar y pegar nombres de usuario en formularios de inicio de sesión, lo que podría omitirse fácilmente si el onpaste
evento se agrega con el onpaste="return false"
atributo HTML. En este caso, solo necesitamos hacer clic derecho en el campo de entrada, seleccionar "Inspeccionar elemento" en un navegador como Firefox y eliminar el atributo HTML.
Sin embargo, si el evento se agregó a través de JavaScript de esta manera:
document.getElementById("lyca_login_mobile_no").onpaste = function(){return false};
Tendremos que eliminar el evento a través de JavaScript también:
document.getElementById("lyca_login_mobile_no").onpaste = null;
En mi ejemplo, utilicé el ID "lyca_login_mobile_no" ya que era el ID de entrada de texto utilizado por el sitio web que estaba visitando.
Otra forma de eliminar el evento (que también eliminará todos los eventos) es eliminar el nodo y crear uno nuevo, como tenemos que hacer si addEventListener
se usó para agregar eventos usando una función anónima que no podemos eliminar conremoveEventListener
. Esto también se puede hacer a través de la consola del navegador inspeccionando un elemento, copiando el código HTML, eliminando el código HTML y luego pegando el código HTML en el mismo lugar.
También se puede hacer más rápido y automatizado a través de JavaScript:
var oldNode = document.getElementById("lyca_login_mobile_no");
var newNode = oldNode.cloneNode(true);
oldNode.parentNode.insertBefore(newNode, oldNode);
oldNode.parentNode.removeChild(oldNode);
Actualización: si la aplicación web se crea con un marco de JavaScript como Angular, parece que las soluciones anteriores no funcionan o no funcionan. Otra solución para permitir pegar sería establecer el valor a través de JavaScript:
document.getElementById("lyca_login_mobile_no").value = "username";
Por el momento, no sé si hay una manera de eliminar todos los eventos de validación y restricción de formularios sin romper una aplicación escrita completamente en JavaScript como Angular.
div.onclick=null
. Por supuesto, no debe usaraddEventListener
en este caso por completo, ya que agregará un oyente diferente al que está enonclick
.