【发布时间】:2010-10-22 18:31:09
【问题描述】:
有谁知道我可以使用javascript检查浏览器窗口何时关闭并弹出一个确认对话框询问用户是否确认退出浏览器或改变主意留下?
【问题讨论】:
-
浏览器窗口是指页面窗口还是整个浏览器?
-
Browser window close event 的可能重复项
标签: javascript
有谁知道我可以使用javascript检查浏览器窗口何时关闭并弹出一个确认对话框询问用户是否确认退出浏览器或改变主意留下?
【问题讨论】:
标签: javascript
文档here 鼓励收听onbeforeunload 事件 和/或在window 上添加事件侦听器。
window.addEventListener('beforeunload', function(e) {}, false);
您也可以使用函数或函数引用填充window的.onunload或.onbeforeunload属性。
虽然跨浏览器的行为没有标准化,但函数可能会返回一个值,浏览器在确认是否离开页面时将显示该值。
【讨论】:
这也有效,除非 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; ?>' });
});
【讨论】:
这对我有用:
function closeWin(){
var exit = confirm("Do you want to leave this window?");
if(exit==true){
//do something before closing;
}
}
body onbeforeunload="closeWin()"
【讨论】:
window.onbeforeunload = function (e) {
var e = e || window.event;
//IE & Firefox
if (e) {
e.returnValue = 'Are you sure?';
}
// For Safari
return 'Are you sure?';
};
【讨论】:
如果页面关闭后浏览器仍在运行,并且浏览器处理了 body 元素的“onbeforeunload”事件(有时它被禁用),并且如果浏览器允许弹出窗口或消息框,并且能够从该事件返回 false 以防止页面更改,那么这是可能的。
例如,在任何启用了 Javascript 的 * 页面上开始输入评论,然后离开该页面。
【讨论】: