Jquery Show Popup仅在窗口关闭时显示

时间:2014-10-21 10:43:53

标签: javascript jquery onbeforeunload

我正在尝试在用户关闭浏览器/标签时显示确认消息,而则在点击页面上的任何链接时显示

我在窗口关闭时显示消息的第一部分工作得很好,但问题是当用户点击页面上的任何链接时,消息/警告也会显示

我从某个地方获得了代码来防止这种行为,但是当点击任何链接时,警报会弹出。

以下是代码:

<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/jquery-ui.min.js"></script>                         
<script type="text/javascript" src="js/backfix-min.js"></script>

$(document).ready(function() {
    $(window).bind('beforeunload', function(e){
            $("#lead-gen-modal").dialog("open");
            // This line only appears in alert boxes for IE
            return "Wait\! Don\'t Go\! We have a special offer for you\. Stay on this page to receive big savings\!";   
    }); 

    $("a").click(function() {
        window.onbeforeunload=null;
    });         
});

2 个答案:

答案 0 :(得分:1)

只使用全局变量 并在点击链接时将其设置为false

var key = true;
$(window).bind('beforeunload', function(e){
  if(key)
  $("#lead-gen-modal").dialog("open");
}); 

更新:

 $(document).on("click","a",function() {
      key=false; 
 }); 

或者如果你只是想阻止关闭窗口,你可以这样做:

window.onbeforeunload = function(e){
   if(key)
   return false;
}

答案 1 :(得分:-1)

我认为你正在寻找类似的东西。

$(window).unload(function() {
  alert("bye");
});

如果这不适用于Chrome,请尝试使用

$(window).on('beforeunload', function() {
  return "bye";
});

jQuery API:unload()http://api.jquery.com/unload/