Para completar as respostas, aqui estão exemplos do mundo real de remoção de eventos quando você visita sites e não tem controle sobre o código HTML e JavaScript gerado.
Alguns sites irritantes estão impedindo que você copie e cole nomes de usuário em formulários de login, o que poderia ser facilmente contornado se o onpaste
evento fosse adicionado com o onpaste="return false"
atributo HTML. Nesse caso, basta clicar com o botão direito do mouse no campo de entrada, selecionar "Inspecionar elemento" em um navegador como o Firefox e remover o atributo HTML.
No entanto, se o evento foi adicionado por meio de JavaScript assim:
document.getElementById("lyca_login_mobile_no").onpaste = function(){return false};
Teremos que remover o evento por JavaScript também:
document.getElementById("lyca_login_mobile_no").onpaste = null;
No meu exemplo, usei o ID "lyca_login_mobile_no", pois era o ID de entrada de texto usado pelo site que estava visitando.
Outra forma de remover o evento (que também removerá todos os eventos) é remover o nó e criar um novo, como temos que fazer se addEventListener
foi usado para adicionar eventos usando uma função anônima que não podemos remover com removeEventListener
. Isso também pode ser feito por meio do console do navegador, inspecionando um elemento, copiando o código HTML, removendo o código HTML e, em seguida, colando o código HTML no mesmo lugar.
Também pode ser feito de forma mais rápida e automatizada por meio de JavaScript:
var oldNode = document.getElementById("lyca_login_mobile_no");
var newNode = oldNode.cloneNode(true);
oldNode.parentNode.insertBefore(newNode, oldNode);
oldNode.parentNode.removeChild(oldNode);
Atualização: se o aplicativo da web é feito usando uma estrutura JavaScript como Angular, parece que as soluções anteriores não estão funcionando ou quebrando o aplicativo. Outra solução alternativa para permitir a colagem seria definir o valor por meio de JavaScript:
document.getElementById("lyca_login_mobile_no").value = "username";
No momento, não sei se existe uma maneira de remover todos os eventos de validação e restrição de formulário sem quebrar um aplicativo escrito inteiramente em JavaScript como o Angular.