Javascript控制onbeforeunload刷新还是关闭时间

最近,项目中需要做一个关闭IE窗口前的提示事件。

 

网上寻找了一下这方面:

 

其实就是一个onbeforeunload方法的问题

 

对于右上角的关闭来说,使用onbeforeunload来调用函数就可以了

 

可是对于在页面上做关闭窗口事件呢,这也是一个小小问题,其实就是再做一个js函数,直接使用window.close()就可以了,它会在IE窗口关闭前,调用onbeforeunload事件。

 

但是onbeforeunload有个小毛病,就是页面刷新时,他还是会调用到onbeforeunload,为什么?其实刷新就相当于关闭了这个IE再重新打开的意思,因此还是会调用到onbeforeunload。

 

究竟怎么解决刷新不调用onbeforeunload呢?

 

网上提供很多方法,本人觉得最实用还是以下这段JS

 

window.onbeforeunload   =   function(){   
      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   =   "是否关闭?";
      }else{
             alert("是刷新而非关闭");   
     }   
}

 

你可能感兴趣的:(JavaScript,IE)