【问题标题】:Detecting if the user browser closes the browser检测用户浏览器是否关闭浏览器
【发布时间】:2011-10-13 08:42:49
【问题描述】:

我有一个带有母版页的网站。我想抓住一个试图关闭浏览器/标签的用户。当我尝试在 body 标记中使用 onunload 时,它不仅会在我尝试关闭浏览器时触发,还会在我导航到另一个页面时触发。

知道如何只捕获关闭浏览器的事件吗?

【问题讨论】:

  • 但是如果我只想为窗口关闭确认编码,即“是或否”,并且在从母版页导航时不应该出现,单击按钮,当时刷新页面我应该做什么?你能写一些示例代码或逻辑吗

标签: javascript


【解决方案1】:

这是不可能的。 Javascript 只能确定您所在的页面是否关闭。如果 Javascript 可以确定您是否关闭了其他选项卡和窗口,例如知道您是否关闭了 Facebook 或 Flyspray,那将是一个重大的安全风险。这就是javascript的工作原理。

【讨论】:

  • 这实际上不是他想要做的,但无论如何回答了这个问题:) 请注意,他并没有试图检测其他选项卡的其他任何内容。 @santosh rahangdale,onbeforeunload 事件在刷新、关闭选项卡/浏览器、转到另一个页面等之间没有区别。它们都是卸载事件。
【解决方案2】:

我正在使用一个安全的在线向导,它将在整个过程中保存数据,我需要检测客户端是否关闭了选项卡和/或浏览器,到目前为止一切正常,直到我点击“继续”按钮继续下一步,它给我带来了同样的信息,我对此进行了相当多的研究,当我通过链接离开页面时,我无法忽略发生的卸载事件.

我尝试使用

if(window.event.clientY < 0 && window.event.clientX < 0){
    alert('holy damn! the window is closing!')
};

以及网络上的其他一些方法。他们都不能只检测到浏览器的关闭。所以就我的研究进展而言,没有办法做到这一点。

【讨论】: