当卸载或退出事件时执行函数jQuery

时间:2013-07-23 17:49:45

标签: javascript jquery

我有一个自定义弹出框,如灯箱或模态框,我想显示它并阻止页面卸载或退出当用户试图离开或退出页面所以我的代码和我的尝试到目前为止:

$(window).bind('beforeunload', function(){
  return loadPopup();
});

从上面的代码中可以看出,当用户试图退出或离开页面时,它应该执行一个函数:

loadPopup();

但它不起作用,loadPopup();没有被解雇。什么应该是我的上述代码的问题,为什么它不执行loadPopup();函数?

2 个答案:

答案 0 :(得分:1)

VeeKayBee解决方案是正确的。

无论如何你也可以用JQuery做到这一点:

$(window).bind('beforeunload', function(){
             fireOnLeave();
             return '';
});
function fireOnLeave(){
    console.log('Fired');  
}

您可以查看控制台日志并查看确认该功能已被触发的'Fired'字符串。但是 将字符串返回'beforeunload'事件。

还有jquery .unload做的事情,但自JQuery 1.8以来它已被弃用 http://api.jquery.com/unload/

答案 1 :(得分:0)

选中此http://jsfiddle.net/Cnsyd/

我不确定你是否使用jQuery做了什么,但显然你可以用javaScript做点什么。

 function closeIt()
  {
    return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
  }
  window.onbeforeunload = closeIt;

JavaScript onbeforeunload事件。它是由Microsoft引入的,但适用于大多数浏览器并点击here以获取更多详细信息。

相信这是你最终需要的东西。