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

我试图在用户关闭浏览器/选项卡时显示确认消息,而不是在单击页面上的任何链接时显示确认消息

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

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

这是代码:

   $(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; }); }); 

只需使用全局变量,并在单击链接时将其设置为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; } 

我想你正在寻找这样的东西。

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

如果这不适用于Chrome,请尝试此操作

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

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