如何在计时器超时时禁用window.onbeforeunload警报

时间:2015-04-07 07:06:27

标签: javascript jquery timer

我已经使用window.onbeforeunload()在用户离开页面时显示警告,这样可以正常工作,

  jQuery(window).bind('beforeunload', function (e) {
        var message = "Attention:";
        e.returnValue = message;
        return message;
    });

在我项目的其中一个视图中,我使用了一个计时器。问题是,当计时器超时时,会显示一个警告,然后是window.onbeforeunload()警报。

我只想要定时器提醒,而不是两者都在定时器超时时显示。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

正如Shaunak评论的那样,你应该在解开你的'#c; hardcoded"之前beforeunload函数定义:

jQuery(window).unbind();

然后重新定义它:

jQuery(window).bind('beforeunload', function (e) {
        var message = "Attention:";
        e.returnValue = message;
        return message;
    });

答案 1 :(得分:0)

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>
&#13;
&#13;
&#13;