当用户离开页面导航时,我使用了window.onbeforeunload()来显示警报,这很好,
jQuery(window).bind('beforeunload', function (e) {
var message = "Attention:";
e.returnValue = message;
return message;
});
在我的项目中的一个视图中,我使用了一个timer.The问题:当计时器超时时,会显示一个警报,然后是window.onbeforeunload()警报。
我只希望计时器警报,而不是两者都显示在计时器超时。
我怎样才能做到这一点?
发布于 2015-04-07 07:13:01
正如Shaunak所评论的,您应该在解除“硬编码”beforeunload
函数定义之前:
jQuery(window).unbind();
然后重新定义:
jQuery(window).bind('beforeunload', function (e) {
var message = "Attention:";
e.returnValue = message;
return message;
});
发布于 2015-04-07 07:13:55
若要unbind
事件,需要引用原始处理程序。
请看下面。
var func = function(e) {
var message = "Attention:";
e.returnValue = message;
return message;
};
jQuery(window).bind('beforeunload', func);
// Unbind 'beforeunload' after 10 seconds
setTimeout(function() {
jQuery(window).unbind('beforeunload', func);
alert('beforeunload unbound');
}, 10000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
https://stackoverflow.com/questions/29485771
复制相似问题