【问题标题】:Confirmation message only for the Browser closing. Not at the time of window tab closed仅用于浏览器关闭的确认消息。不在窗口选项卡关闭时
【发布时间】:2014-09-28 05:22:59
【问题描述】:

我正在尝试检测用户点击的浏览器关闭按钮。因此,我在网上搜索后尝试了以下代码:=

<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
 $(window).bind('click', function(event) {
   if(event.target.href) 
         $(window).unbind('beforeunload');
 });
 $(window).bind('beforeunload', function(event) {
     return 'pls save ur work';
 });
 </script>
 </head>

 <body>
  <a href="test2.cfm">reload</a>
 </body>

这对于浏览器关闭和窗口选项卡关闭事件非常有效。这将在关闭两者时给出确认消息。

但我只想要浏览器关闭的消息。不在窗口标签关闭时。 有什么解决办法吗?

原因是我想检测浏览器关闭,因为只有在浏览器关闭时我想更新登录用户的一些数据并清除用户的会话。

我怎样才能做到这一点?

感谢和问候,

【问题讨论】:

  • 不,我不认为有任何方法可以区分beforeunload 事件被触发的原因,无论是标签、窗口还是浏览器。
  • 正如@DavidThomas 所说,没有办法做你想做的事,这是故意的。关闭浏览器时它起作用的唯一原因是因为 关闭了选项卡。
  • @All : 谢谢回复。
  • 也许你可以通过制作浏览器扩展来做到这一点......但仍然没有什么意义。
  • 我想检测浏览器是否关闭,因为只有在浏览器关闭时我才想更新登录用户的一些数据并清除用户的会话。

标签: javascript jquery html events


【解决方案1】:

不,没有任何解决方案。 window 属性并不绑定到一个真实的窗口(就操作系统而言),而是绑定到它运行的环境(这实际上是现代浏览器中的一个选项卡)。这就是为什么 Chrome 中有一个称为沙盒的功能,其中崩溃的选项卡不会影响其他选项卡。因此,关闭选项卡或关闭窗口不会对任何 JavaScript 函数产生任何影响。为什么您只想在关闭整个浏览器窗口之前收到警告?即使关闭标签,工作也会丢失!

【讨论】:

  • 我想检测浏览器是否关闭,因为只有在浏览器关闭时我想更新登录用户的一些数据并清除用户的会话。
猜你喜欢
  • 2016-07-11
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 2014-01-31
  • 1970-01-01
相关资源
最近更新 更多