Javascript 仅针对浏览器关闭的确认消息。在窗口选项卡关闭时没有

Javascript 仅针对浏览器关闭的确认消息。在窗口选项卡关闭时没有,javascript,jquery,html,events,Javascript,Jquery,Html,Events,我正在尝试检测用户单击的浏览器关闭按钮。因此,我在网上搜索后尝试了以下代码:= <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.h

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

<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>

$(窗口).bind('click',函数(事件){
if(event.target.href)
$(窗口).unbind('beforeunload');
});
$(窗口).bind('beforeunload',函数(事件){
返回“请保存您的工作”;
});
这对于浏览器关闭和窗口选项卡关闭事件来说绝对有效。这将在关闭这两个窗口时发出确认消息

但我只需要浏览器关闭时的消息。在窗口选项卡关闭时不可用。 有什么解决办法吗

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

我怎样才能做到这一点


谢谢和问候,

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

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