用于检查浏览器窗口何时关闭的JavaScript

时间:2009-04-30 05:35:07

标签: javascript

有没有人知道我可以使用javascript来检查浏览器窗口何时关闭并弹出确认dailog以询问用户是否确认退出浏览器或改变主意留下来?

5 个答案:

答案 0 :(得分:22)

window.onbeforeunload = function (e) {
  var e = e || window.event;

  //IE & Firefox
  if (e) {
    e.returnValue = 'Are you sure?';
  }

  // For Safari
  return 'Are you sure?';
};

https://developer.mozilla.org/en/DOM/window.onbeforeunload

答案 1 :(得分:1)

如果浏览器在页面关闭后仍然运行,并且浏览器处理了body元素的“ onbeforeunload ”事件(有时会被禁用),以及浏览器允许弹出窗口或消息框以及从该事件返回false以防止页面更改的能力,然后就可以了。

例如,在启用了Javascript的任何stackoverflow页面上开始键入注释,然后离开该页面。

答案 2 :(得分:1)

这对我有用:

function closeWin(){
 var exit = confirm("Do you want to leave this window?");  
     if(exit==true){
        //do something before closing;
     }
}    

body onbeforeunload="closeWin()" 

答案 3 :(得分:1)

文档here鼓励您在onbeforeunload上收听window 事件和/或添加事件监听器。

window.addEventListener('beforeunload', function(e) {}, false);

您还可以使用功能功能参考填充.onunload的{​​{1}}或.onbeforeunload属性。< / p>

虽然浏览器的行为没有标准化,但功能可能会返回一个值,浏览器在确认是否离开页面时会显示该值。

答案 4 :(得分:0)

这也适用,除非IE8

$(window).bind('beforeunload', function (e) {
        // code to execute when browser is closed
        e.$.post("func.php", { action: 'action', id_userMsg: '<?php echo $id_user; ?>' });      

    });