页面关闭后的JavaScript警报问题

时间:2011-01-12 10:13:46

标签: javascript jquery

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

我只需要这个功能:

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

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

下面的代码适用于jquery,我现在在Mozilla firefox中遇到的唯一问题是,如果该页面中存在任何链接,如href到www.google.com,它将显示警告... 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>

2 个答案:

答案 0 :(得分:2)

不幸的是,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/

答案 1 :(得分:0)

您可以尝试以下操作:

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

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