如何捕获浏览器关闭事件?

IT技术 javascript jquery events browser
2021-02-20 12:46:59

我想在我的应用程序中捕获浏览器关闭事件并向用户显示一个确认框。我使用的是 JSF 2.0 和 Richfaces 4.0。

4个回答
window.onbeforeunload = function () 
{
  var shallIAlertUser = Do_Whatever(); //get boolen value
  if (shallIAlertUser) {
    //this will alert user
    return 'Are you sure?';
  }
  else {
    //this wont
    window.onbeforeunload = undefined;
  }
};

使用beforeunload事件。

window.onbeforeunload = function(event) {

    event = event || window.event;

    var confirmClose = 'Are you sure?';

    // For IE and Firefox prior to version 4
    if (event) {
       event.returnValue = confirmClose;
    }

    // For Safari
    return confirmClose;

}

请记住,除了关闭窗口外,其他事件也会触发,例如重新加载和表单提交。

Alt-F4 是否相同,并关闭导航器(tab 或 X )以及 F5 键、回发和重新加载?
2021-04-22 12:46:59

onbeforeunload

< body onbeforeunload="alert('Closing');">

例子 :

<html> 
<head>
<title>`onbeforeunload` Event Demo</title>
</head>
<body onbeforeunload="return 'Are you sure you want to exit ?';">
</body> 
</html> 
beforeunload事件旨在返回一个string. 文档
2021-05-10 12:46:59
@Alex 谢谢你的信息。OP 只想要一个函数调用
2021-05-20 12:46:59

将处理程序附加到unload事件。

我尝试使用 onbeforeunload 事件。但问题是当我刷新页面或进行任何表单提交时,它也会调用 onbeforeunload 事件。
2021-04-27 12:46:59
没有办法区分它们;浏览器只能告诉你当前文档即将被替换。这并不能让你知道为什么
2021-05-10 12:46:59