检测浏览器关闭事件

Detect browser close event

我想捕获浏览器window/tab关闭事件。我尝试了以下但没有用:

<script type="text/javascript">
window.onbeforeunload = function(){ myUnloadEvent(); }
function myUnloadEvent() {
    alert ('Calling some alert messages here');
}
</script>
<body>
Body of the page goes here.
</body>

也尝试了这些链接,但没有成功。

javascript to check when the browser window is close
How to capture the browser window close event?
javascript detect browser close tab/close browser
Trying to detect browser close event

问题:

我只想检测浏览器关闭事件并对其进行一些处理,而不向用户显示提示。

我试过很多方法通过jQuery或JavaScript检测浏览器关闭事件。但不幸的是我没能成功。 onbeforeunload 和 onunload 方法也不起作用。

我们将不胜感激任何帮助。谢谢

您可以看到控制台在屏幕关闭前快速写入该行。

window.onbeforeunload = myUnloadEvent;
function myUnloadEvent() {
    console.log("Do your actions in here")
}

卸载前不允许发出警报 - 如果您打开了保留日志,您将看到:

Blocked alert('Calling some alert messages here') during beforeunload.

但是如果你使用console.log命令,它会通过。

您不能在 onbeforeunload 上显示 alert()。您需要 return 才能显示 confirm dialog

<script type="text/javascript">
window.onbeforeunload = function(e){  
  return 'Calling some alert messages here'; //return not alert
}
</script>
<body>
Body of the page goes here.
</body>

也不要那样调用function,直接写在onbeforeunloadOR return myUnloadEvent();中,这取决于你在onbeforeunload里面想做什么。尽量不要进行任何 AJAX 调用,因为浏览器可能不会 运行 脚本。您可以取消设置网络存储变量、删除会话等。

另请注意,刷新页面时也会触发此事件。