取消onbeforeunload事件处理程序?
问题描述:
我有一个onbeforeunload事件处理程序附加到页面,每次页面重新载入/获取重定向时执行。取消onbeforeunload事件处理程序?
window.onbeforeunload = function() {
console.log("do something");}
我不希望脚本在测试期间运行。我想在我自己的测试环境中禁用它。
有没有办法解除这个onbeforeunload事件?我使用JavaScript,jQuery作为框架,所以jQuery中的答案会很好。
答
在javascript函数中可以被覆盖。您可以简单地为其指定一个新目的:
window.onbeforeunload = function() {
// blank function do nothing
}
这将完全覆盖现有版本window.onbeforeunload
。
注意:为什么不简单地首先删除设置此函数的代码行?或者,如果你不能,你将不得不在设置这个空白功能后,以确保它不被重写
答
与此问题没有直接关系(请不要因为这个问题downvote ),但可以帮助别人不过,这是我在角1.x和打字稿使用:
this.$window.onbeforeunload =() => null;
答
的jQuery≥1.7
使用jQuery 1.7以后的事件API已经更新,.bind()/ .unbind()仍然可用于向后兼容,但首选的方法是使用on()/ off()函数。下面现在是,
$('#myimage').click(function() { return false; }); // Adds another click event
$('#myimage').off('click');
$('#myimage').on('click.mynamespace', function() { /* Do stuff */ });
$('#myimage').off('click.mynamespace');
这完美地在我们的AJAX函数里面碰到了同样的问题。 +1 – Ligemer 2013-07-03 04:59:03
或'window.onbeforeunload = null;' – 2015-06-01 13:35:16