Javascript 当计时器为timedout时,如何禁用window.onbeforeunload警报
我使用window.onbeforeunload在用户离开页面时显示一个警报,效果很好Javascript 当计时器为timedout时,如何禁用window.onbeforeunload警报,javascript,jquery,timer,Javascript,Jquery,Timer,我使用window.onbeforeunload在用户离开页面时显示一个警报,效果很好 jQuery(window).bind('beforeunload', function (e) { var message = "Attention:"; e.returnValue = message; return message; }); 在我的项目中的一个视图中,我使用了一个计时器。问题是,当计时器超时时,会显示一个警报,随后是windo
jQuery(window).bind('beforeunload', function (e) {
var message = "Attention:";
e.returnValue = message;
return message;
});
在我的项目中的一个视图中,我使用了一个计时器。问题是,当计时器超时时,会显示一个警报,随后是window.onbeforeunload警报
我只想在计时器超时时显示计时器警报,而不是同时显示两者
如何实现这一点?正如Shaunak所评论的,在解除硬编码的beforeuload函数定义的绑定之前,您应该:
jQuery(window).unbind();
然后重新定义它:
jQuery(window).bind('beforeunload', function (e) {
var message = "Attention:";
e.returnValue = message;
return message;
});
要解除事件绑定,需要对原始处理程序的引用
请看下面
var func=function{
var消息=注意:;
e、 返回值=消息;
返回消息;
};
jQuerywindow.bind'beforeunload',func;
//10秒后“卸载前”解除绑定
setTimeoutfunction{
jQuerywindow.unbind'beforeunload',func;
“卸载前解除绑定”警报;
}, 10000;
这是浏览器的行为,在警报时触发卸载之前。您可以通过使用“取消绑定”,然后再使用“绑定”来覆盖它。谢谢,请通过给出一个示例来详细说明。是的,这是有效的,但为什么在我使用$window.off“beforeunload”时它不起作用;或者window.onbeforeunload=nullTry:$document.readyfunction{$window.off'beforeunload',function{};};