html页面的onunload、onbeforeunload



附最终代码:

    //主窗体加载,需要记录在线标志。因为在主窗体可能刷新,可能关闭窗口。
    //如果刷新,此时也会执行beforeunload时导致用户离线,因此onload中要将用户置为在线
    window.οnlοad=function()
    {
        //alert("onload");
        //关闭窗体时才退出登录;刷新按钮,不能退出
        $.ajax({
          type:"POST",
          url:"oa_sys_manage",
          data:"type=online",
          dataType:"",
          async:false,
          success:function(data){
              //alert('已重新登录!');
              ;//
          }
        });       
    }
    
    //主窗体关闭事件处理  退出登录
    window.οnbefοreunlοad=function(event)  //ie firefox
    {
        var evt=event?event:window.event;
        //alert(evt);
        //alert('before unload');
        var isIE=document.all?true:false;
        if(isIE)
        {
            alert('ie beforeunload');
            var a_n = evt.screenX - window.screenLeft;
            //alert(a_n);
            var a_b = a_n >document.documentElement.scrollWidth-20;
            //alert(a_b);
            if(a_b && evt.clientY<0 || evt.altKey)
            {
                alert('关闭页面行为');
                //关闭窗体时才退出登录;刷新按钮,不能退出
                $.ajax({
                  type:"POST",
                  url:"oa_sys_manage",
                  data:"type=offline",
                  dataType:"",
                  async:false,
                  success:function(data){
                      //alert('已安全退出系统!');
                      ;//
                  }
                });           
            }
            else
            {
               //alert('跳转或者刷新页面行为');
            }   
        }
        else
        {
            alert('firefox beforeunload');
            //关闭窗体时才退出登录;刷新按钮,不能退出
            $.ajax({
              type:"POST",
              url:"oa_sys_manage",
              data:"type=offline",
              dataType:"",
              async:false,
              success:function(data){
                  //alert('已安全退出系统!');
                  ;//
              }
            });
        }     
    } 

你可能感兴趣的:(网页JS)