Usando o jQuery
$(window).off('beforeunload'); // tested in IE 11 and Chrome 62
Dos documentos do jQuery
Calling .off() with no arguments removes all handlers attached to the elements. Specific event handlers can be removed on elements by providing combinations of event names, namespaces, selectors, or handler function names.
Então, em suma, o $(window)
nos dá uma referência ao objeto da janela que é empacotado em um objeto jQuery. Esse wrapper nos dá acesso às APIs do jQuery que estão disponíveis no objeto (como .off
). Chamar .off()
e fornecer a string beforeunload
removerá todos os ouvintes de eventos que estavam ouvindo anteriormente o evento beforeunload
.
Nota: Eu joguei com as abordagens JS vanilla que encontrei depois de uma pesquisa rápida no Google. No entanto, não consegui fazer com que essas abordagens funcionassem no tempo determinado para resolver esse problema. Se alguém tiver um método não jQuery que ainda seja compatível com navegadores, por favor, comente ou poste uma resposta adicional. :)