有谁知道我可以使用javascript检查浏览器窗口何时关闭并弹出确认对话框询问用户是否确认退出浏览器或改变主意留下的任何方法?
javascript 检查浏览器窗口何时关闭
IT技术
javascript
2021-01-14 16:44:49
5个回答
window.onbeforeunload = function (e) {
var e = e || window.event;
//IE & Firefox
if (e) {
e.returnValue = 'Are you sure?';
}
// For Safari
return 'Are you sure?';
};
此处的文档鼓励侦听onbeforeunload
事件和/或在 上添加事件侦听器window
。
window.addEventListener('beforeunload', function(e) {}, false);
您也可以使用函数或函数引用填充.onunload
或.onbeforeunload
属性。window
虽然跨浏览器的行为没有标准化,但该函数可能会返回一个值,浏览器在确认是否离开页面时将显示该值。
如果页面关闭后浏览器仍在运行,并且浏览器处理body 元素的“ onbeforeunload ”事件(有时它被禁用),并且浏览器是否允许弹出窗口或消息框以及从该事件返回 false 的能力以防止页面更改,则有可能。
例如,在任何启用了 Javascript 的 stackoverflow 页面上开始输入评论,然后离开该页面。
这对我有用:
function closeWin(){
var exit = confirm("Do you want to leave this window?");
if(exit==true){
//do something before closing;
}
}
body onbeforeunload="closeWin()"
这也有效,除非适用于 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; ?>' });
});