好久以前看见的,终于找到了,meizz的代码
<script   language="javascript">   
  window.onbeforeunload   =   function()     //author:   meizz   
  {   
      var   n   =   window.event.screenX   -   window.screenLeft;   
      var   b   =   n   >   document.documentElement.scrollWidth-20;   
      if(b   &&   window.event.clientY   <   0   ||   window.event.altKey)   
      {   
          alert("是关闭而非刷新");   
          window.event.returnValue   =   "";     //这里可以放置你想做的操作代码   
      }   
  }   
  </script>

解决方案 »

  1.   

    window.event,这个是IE下的事件...非 IE的浏览器不能使用.。
    对IE的处理,Meizz用的是 if(b   &&   window.event.clientY   <   0   ||   window.event.altKey)和我的处理其实一样的,我现在缺的是非IE下的判断处理.。谢谢楼上的
      

  2.   

    SOORY,没看到上面的代码.我再搞下
      

  3.   

    对非正常的退出,需要做处理,不然某个用户帐号可能出现短时间不能登录的状况(application server握住还未过期的session)。同时,如果用户刷新当前页面,session信息也不该有所变化。所以需要区别是刷新还是关闭..对一些特殊的情况只能靠application server来处理,比如客户端停电,死机,或者用户直接从file->exit关闭浏览器,都是无法控制的事件。