<script type="text/javascript">     
        <!--  
        window.onunload = onunload_handler;  
         function onunload_handler(){   
            CloseOpen(event); 
        }   
        
        function CloseOpen(event) { 
                 //直接点击了任务栏上的关闭按钮
                 if(event.clientX<=0 || event.clientY<0) { 
                     //获取当前时间
                   var date=new Date();
                   //将date设置为过去的时间
                   //alert("关闭网页");
                   return confirm('您确定要关闭网页么')
                    parent.location.href='../loginout.aspx';
                    
                   date.setTime(date.getTime()-10000);
                   //将userId这个cookie删除
                   document.cookie="zhuangtao;expire="+date.toUTCString();
                   document.cookie="quanxianzifucuan;expire="+date.toUTCString();
                   document.cookie="quanxian;expire="+date.toUTCString();
                  s0 += "关闭窗口!"; sw = 1;
                    onbeforeunload();
                   // window.event.returnValue = '关闭浏览器将退出系统.';
                 } 
                 else 
                 { 
                        alert("刷新或离开"); 
                 } 
          } 
                      
            var currentKeyCode = -1;            function document.onkeydown() { // 本窗口的所有下属页面都必须含有本函数               top.currentKeyCode = event.keyCode;
            }            function onbeforeunload(){
            
             var sw = 0, s0 = "";
                if (currentKeyCode == 116) 
                {
                   s0 += "刷新窗口!(F5)";
                }
                else 
                {
                   if ((event.altKey) || (currentKeyCode == 115))
                    {
                          s0 += "关闭窗口!(alt+F4)"; sw = 1;
                           //获取当前时间
                           var date=new Date();
                           //将date设置为过去的时间
                          alert("关闭窗口");
                           date.setTime(date.getTime()-10000);
                           //将userId这个cookie删除
                           document.cookie="zhuangtao;expire="+date.toUTCString();
                           document.cookie="quanxianzifucuan;expire="+date.toUTCString();
                           document.cookie="quanxian;expire="+date.toUTCString();
                    }
                    else 
                    {
                       if ((event.clientX > 0)&&(event.clientX < document.body.clientWidth)) 
                       {
                          s0 += "刷新窗口!";
                       }
                       else 
                       {
                        //获取当前时间
                           var date=new Date();
                           //将date设置为过去的时间
                           alert("关闭网页");
                           date.setTime(date.getTime()-10000);
                           //将userId这个cookie删除
                           document.cookie="zhuangtao;expire="+date.toUTCString();
                           document.cookie="quanxianzifucuan;expire="+date.toUTCString();
                           document.cookie="quanxian;expire="+date.toUTCString();
                          s0 += "关闭窗口!"; sw = 1;
                       }
                    }
                }
                if (sw == 1) 
                {
                  event.returnValue = "";
                }
                else 
                {
                  currentKeyCode = -1;
                }
            
            }
        // -->  
    </script>

解决方案 »

  1.   

    我也想知道怎么做,之前我是监听unload事件,但是不起作用
      

  2.   

    window.onbeforeunload = function() {
                screen.width  当前屏幕
                //document.body.clientWidth                 当前网页
                if (screen.width > document.body.clientWidth && event.clientY < 0 || event.altKey) {
    window.event.returnValue="确定关闭网页";
                }else{
    alert("刷新网页");
    }
            }如果确定关闭,只需要在window.onunload事件里面做操作即可。
      

  3.   

    顶  ,目前也遇到了同样的问题 数据库用户表中有一列is_online   表示用户是否在线   0为不在线   1为在线
    用户登录成功之后修改   state=1
    用户点击退出按钮之后修改   state=0 这样本来很完美
     但是   如果用户登录成功之后   没有点击退出按钮退出     而是直接关闭浏览器   这样就不会修改state=0  如何在用户关闭浏览器之后   也修改state=0  这个非常重要