问题: 用户登录到系统中了,点击页面上的“退出”按钮,可以清除该用户的在线信息;但是当用户直接点击了 浏览器的关闭按钮后,用window的onbeforeunload事件能捕获这种操作。期望的效果是弹出确认窗口 选择了“确定”后能执行我的指定代码,当选择了“取消”后,不执行任何代码。但在测试中出现这样的效果:直接点击浏览器的关闭按钮后,发现总是先执行指定的代码,而后才是 弹出的确认窗口? 这和期望的效果正好相反。如此就没有弹出确认窗口的必要了。其实,这种机制 应该像confirm就对了。能告诉调用者 用户选择的是“确定”还是“取消”,之后按照逻辑各自处理。
在网上查了,都是说 只要点击了“确定”就是触发 onbeforeunload事件。可是这看起来矛盾,应该是先有onbeforeunload事件弹出的确认窗口,才能选择“确定”或者“取消”啊!以下是部分代码:页面中写上:window.onbeforeunload = function(){    
 event = event || window.event;//浏览器兼容
 event.returnValue = "确定要退出系统吗?";
}在哪里知道 用户选择了“确定”?而不是 弹出这个确认窗口,就执行了期望的代码?请高手赐教!  不胜感激!

解决方案 »

  1.   

    onunload  这个事件应该是可以的
      

  2.   

    用 onunload的话,就不能出现 确认的弹出窗口了!
      

  3.   

    在google浏览器中怎么调用window.onbeforeunload 方法
      

  4.   

    怎么没人啊 我也遇到这个问题啊 我的是要清除用户登录时候的Session啊 怎么没人回答啊。。
      

  5.   

    window.onload = function(){
    window.onbeforeunload = function (e) {
      e = e || window.event;
      // 兼容IE8和Firefox 4之前的版本
      if (e) {
        e.returnValue = '确定退出吗?';
      }
      // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
      return '确定退出吗?';
    };
    };