检测浏览器关闭事件

时间:2015-05-26 04:46:19

标签: javascript browser cross-browser onbeforeunload

我想捕获浏览器窗口/选项卡关闭事件。我尝试了以下但不工作:

<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方法也无效。

任何帮助都将受到高度赞赏。感谢

2 个答案:

答案 0 :(得分:1)

您无法在alert()上显示onbeforeunload。您需要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,直接写在onbeforeunloadreturn myUnloadEvent();这取决于你在onbeforeunload内尝试做什么。尽量不要进行任何AJAX调用,因为浏览器可能无法运行脚本。您可以取消设置Web存储变量,删除会话等

还要注意刷新页面时也会触发此事件。

答案 1 :(得分:0)

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

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

在beforeunload期间不允许发出警报 - 如果您打开了Preserve日志,您将看到:

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

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