首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在计时器超时时通知window.onbeforeunload

如何在计时器超时时通知window.onbeforeunload
EN

Stack Overflow用户
提问于 2015-04-07 07:06:26
回答 2查看 504关注 0票数 0

当用户离开页面导航时,我使用了window.onbeforeunload()来显示警报,这很好,

代码语言:javascript
运行
复制
  jQuery(window).bind('beforeunload', function (e) {
        var message = "Attention:";
        e.returnValue = message;
        return message;
    });

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

我只希望计时器警报,而不是两者都显示在计时器超时。

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-07 07:13:01

正如Shaunak所评论的,您应该在解除“硬编码”beforeunload函数定义之前:

代码语言:javascript
运行
复制
jQuery(window).unbind();

然后重新定义:

代码语言:javascript
运行
复制
jQuery(window).bind('beforeunload', function (e) {
        var message = "Attention:";
        e.returnValue = message;
        return message;
    });
票数 0
EN

Stack Overflow用户

发布于 2015-04-07 07:13:55

若要unbind事件,需要引用原始处理程序。

请看下面。

代码语言:javascript
运行
复制
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);
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29485771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档