【问题标题】:javascript alert issue after page close页面关闭后的javascript警报问题
【发布时间】:2011-01-12 10:13:46
【问题描述】:

我正在使用 onbeforeunload 功能在用户关闭浏览器窗口之前提醒他。目前,如果我们关闭浏览器的任何选项卡,就会调用警报。

我只需要这个功能:

1) 仅当我们的标签页尝试关闭时才发出警报,即当我们尝试关闭其他标签页时不会显示此警报。

2) 当我们尝试使用关闭按钮右上角关闭整个浏览器时应该显示..

以下代码适用于 jquery,我现在在 Mozilla firefox 中面临的唯一问题是,如果该页面中存在任何链接,例如指向 www.google.com 的 href,它将显示警报...in这种情况也是如此,这不是必需的。这适用于 IE,我使用的是 mozilla 3.6

请帮忙.....

代码如下

<html>
<script src="jquery.js"></script>
<script>
$(function() {
    $(window).bind("beforeunload", function(e) {
      return "Are you sure?"
    });
  });

</script>

<body>
hiiiiii


</body>

</html>

【问题讨论】:

  • 你已经问过我这个问题了。除了 onbeforeunload 之外,不存在其他替代函数。
  • 嗯...我也在 Firefox 3.6xxxx 中尝试了该代码,它按预期工作...也许您正在使用的浏览器存在其他特定问题...嗯。跨度>
  • 我想知道它是如何为你工作的......唯一的问题是如果有任何超链接(外部链接到谷歌/雅虎),这个警报也会在那个时候出现......我需要避免这……有可能吗?你能分享一下为你工作的代码吗...
  • 请帮忙,这很紧急...

标签: javascript jquery


【解决方案1】:

很遗憾,event object 中没有任何信息(还没有)。所以你不知道用户想如何离开你的页面。但是你可以解决这个问题。例如,您想允许所有 external links 离开您的站点,您可以添加一些布尔标志。

var allowunload = false;


$('a').bind('click', function() {
    allowunload = true;
});

...并在beforeunload 事件中检查:

$(window).bind('beforeunload', function(e) {
    if(!allowunload)
        return 'sure?';
});

查看实际操作:http://www.jsfiddle.net/4yUqL/41/

【讨论】:

  • 嗨 Jandy,如果用户点击任何链接,它应该会正常转到该页面而不会发出任何警报......只有当他试图关闭他的标签而不是其他标签时才会发出警报......并且另外,如果他尝试使用浏览器右上角的“关闭”按钮关闭整个浏览器...希望我已经为您提供了足够的信息..
【解决方案2】:

您可以尝试以下方法:

$("a").click(function(){
   $(window).unbind('beforeunload');
});
$(window).bind('beforeunload', function(e) {
   return 'sure?';
});

如果用户单击锚点,这将取消绑定事件。不过,如果锚点不重定向到另一个页面,而是执行一些 JavaScript 功能,它会有一个小的副作用。

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多