检测IE和Fireforx中的退出事件

时间:2017-03-01 09:24:04

标签: javascript jquery

我想在所有浏览器上检测退出事件,我尝试了这段代码:

<html>
<head>
<script type="text/javascript">
window.onbeforeunload = function (event) {
    var message = 'Important: Please click on \'Save\' button to leave this page.';
    if (typeof event == 'undefined') {
        event = window.event;
    }
    if (event) {
        event.returnValue = message;
    }
    return message;
};
</script>
</head>
<body>
<p>
Exit your browser .... 
</p>
</body>
</html> 

此代码适用于Chrome和Safari,但它在IE 11和Fireforx 50.0.1中无效...任何想法?

3 个答案:

答案 0 :(得分:1)

MDN页面开始提及以下注释

  

另请注意,各种移动浏览器会忽略事件的结果(即,他们不会要求用户进行确认)。 Firefox在about:config中有一个隐藏的首选项来做同样的事情。实质上,这意味着用户始终确认可以卸载文档。

about:config内的隐藏密钥可以通过密钥dom.disable_beforeunloaddom.require_user_interaction_for_beforeunload找到。

你的代码看起来似乎没问题,所以查看配置文件可能会有所帮助(说明提到了移动浏览器,但我在桌面浏览器上也有这些设置)

答案 1 :(得分:0)

试试 window.addEventListener('beforeunload',function(evt){...

答案 2 :(得分:0)

这是我发现的回应,它对我有用。

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  (e || window.event).returnValue = confirmationMessage; //Gecko + IE
  return confirmationMessage;                            //Webkit, Safari, Chrome
});

谢谢