<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)
  {
    window.event.returnValue = "";  //这里可以放置你想做的操作代码
  }
}
</script>

解决方案 »

  1.   

    meizz(梅花雪):
     可以解释一下么?谢谢。
      

  2.   

    主要就是判断 Alt+F4 和 点击“X”两种关闭情况,为了兼容框架网页,写得有点怪了些
      

  3.   

    当用window.event.returnValue的时候,会有一个对话框弹出询问是否确定关闭IE,现在我的意思是要在点击确定按钮后,对服务器的Session清空,但是获取不了点击确定或取消按钮的事件,在此请各位高手帮忙,而且对于meizz(梅花雪)的方法有一个Bug,就是在弹出确认信息对话框后,点击取消,再点IE的叉,再点取消,反复几次,就有一次不弹出对话框而直接关闭IE,这种情况是随机出现的,指不定是在第几次点取消后,有可能在第一次点叉的时候就不好用了。还有个问题,有什么方法可以中断IE正在执行的关闭事件
      

  4.   

    <script  language=javascript>  
    function  window.onbeforeunload()
    {
       if (event.clientX>document.body.clientWidth && event.clientY<0 || event.altKey){  
         window.event.returnValue="是否真的要关闭窗口!";  
       }
       //在这里写上你要的操作;
    }
    </script>
      

  5.   

    系统没有给出特定的针对关闭的事件,只能用脚本自己来做,但总会有一些不确定的因素,对于你这种通过侦测用户关闭而清空后台session的需求我也遇到过好多,这种脚本只能是一个辅助手段,应以辅助其它手段一起实现。
      

  6.   

    例如 onbeforeunload 和 onunload 这两个事件在不同的浏览器有不同的说法,并不是所有浏览器都会触发 onbeforeunload 事件的。
      

  7.   

    非常感谢这位仁兄tigerwen01(小虎)(编程艺术化)的帮助,但是您这个方法我早试过了,弹出的确认退出IE的对话框是在所有Script方法执行后才弹出的,这样点击确定和取消都是一样的效果了,所以还是不行,麻烦大家再帮想想办法,谢谢
      

  8.   

    很感谢meizz(梅花雪)的多次帮助了啊,但是onbeforeunload和onunload两个方法我现在的确在配合着用了,但是还是达不到清Session的效果,至于您说的其它手段,能不能具体说一下啊,
    非常感谢
      

  9.   

    不要指望能清空session了,有人用了无数种方法都没成功