这里说的关闭浏览器是,就是鼠标右键关闭,或者是点右上角的小叉子关闭。 以下是我在IE中 判断浏览器关闭或者刷新的方法 function unloadDestorySession(event) { event = (event)?event:window.event; if (event.clientX < 0 && event.clientY < 0  ||  event.altKey) { 
    alert("关闭"); 

} else { 
    alert("刷新"); } 
} <body onunload="unloadDestorySession()"> 在ie里一切正常,但是在firefox里面是没有办法执行的,我尝试了很多方法去解决这个问题,但是还是没办法。 希望有高人能解决这个问题,因为我在做一个实时聊天的应用,要监听实时在线的用户。关闭浏览器时,要销毁对应的session,要更新在线用户。 要求必须能在firefox下实现和上面程序一样的功能。 

解决方案 »

  1.   

    建议用定时请求确定用户是否在线,我如果直接kill process或者浏览器崩溃你也得不到的
      

  2.   

    该标题:fireFox下怎么判断是刷新还是关闭浏览器 好像最近很热手!
      

  3.   


    <body onunload="unloadDestorySession(event)"> <script>
    function unloadDestorySession(evt) { 
    evt = evt ? evt : (window.event ? window.event : null); if (evt.clientX < 0 && evt.clientY < 0  ||  evt.altKey) 

        alert("关闭"); 
    } else { 
        alert("刷新"); 
        alert(evt.clientX); 


    </script>我试了一下,好像是event.clientX有问题,evt.clientX显示[undefined]。剩下的我也不知道了....
      

  4.   

    FF下估计不行, 刷新和关闭时的event对象是一样的
    function unloadDestorySession(event) { 
    event = (event) ? event : window.event; 
    var pro = [];
    for(x in event){
    pro.push( x + " = " + event[x]);
    }
    var win = window.open("about:blank");
    win.document.write(pro.join("<br/>"));
    win.document.close(); if (event.clientX < 0 && event.clientY < 0  ||  event.altKey) { 
    alert("关闭"); 
    } else { 
    alert("刷新"); 

    }
    window.onunload = function(oEvent){
    unloadDestorySession(oEvent);
    };
      

  5.   

    其实在IE下也不能完全判断,
    还有很多方法可以关闭IE,alter+f4, ctrl+w, 结束进程
    IE7下还有关闭标签栏和关闭整个IE的区别。