我想在所有浏览器上检测退出事件,我尝试了这段代码:
<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中无效...任何想法?
答案 0 :(得分:1)
从MDN页面开始提及以下注释
另请注意,各种移动浏览器会忽略事件的结果(即,他们不会要求用户进行确认)。 Firefox在about:config中有一个隐藏的首选项来做同样的事情。实质上,这意味着用户始终确认可以卸载文档。
about:config
内的隐藏密钥可以通过密钥dom.disable_beforeunload
和dom.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
});
谢谢