uma coisa que faço quando algum site irritante executa algumas coisas como essa está substituindo as funções. deixe-me dar um exemplo.
na maioria dos casos, se onbeforeunload
tiver sido definido usando este método:
window.onbeforeunload = function() {
....
}
Você pode substituí-lo usando o console do firebug da mesma forma
window.onbeforeunload = function() {} // blank function
Nota: Eu encontrei algum script que usa self.close
com um temporizador que também é muito chato para um leitor lento como eu. aqui está minha solução
window.close = function() {} // blank function
simplesmente sobrescreve o fechamento da janela.
Espero que isso responda à sua pergunta