判断IE关闭还是刷新

因为IE关闭或者刷新,都会调用onbeforeunload(),onunload()这两个事件

这就要求我们不得不在此事件中判断IE的事件操作,通过网上查询的资料,找到了几个方法,

都不太尽人意,不能完全满足要求,最后无奈,也没有找到方法,不过在此做下总结还是有点必要的。

 

首先,要屏蔽掉F5快捷键,因为下面的方法,是根据鼠标在什么位置操作,导致onbeforeunload(),onunload()

这两个事件的响应来判断IE是关闭还是刷新的,但是如果有F5的添乱,就没法用这种方法进行判断了!

方法1:

var n = window.event.screenX - window.screenLeft;      
var b = n > document.documentElement.scrollWidth - 40;  //40这个值,根据不同的浏览器,它的值不同。因为浏览器右上角的关闭叉,区域大小都不同,这个40只是按钮叉

                               //的宽度,可以适当设置大一些,只要小于会导致onbeforeunload(),onunload()会响应的按钮即可
if ((b && window.event.clientY < 0) || (window.event.screenY > document.body.clientHeight) || window.event.altKey)
{
  // 此处为IE关闭         

}     
else 
{

  //其他情况为刷新                    
}

 

方法2(暂时不好用)

alert(event.clientX + '      ' + document.body.clientWidth +  '    ' + event.clientY + '        ' + window.parent.document.body.clientHeight);
//用户点击浏览器右上角关闭按钮
if(event.clientX > document.body.clientWidth && event.clientY<0 || event.altKey)     
{       
     // 此处为IE关闭}  
//用户点击任务栏,右键关闭。
else if(event.clientY > window.parent.document.body.clientHeight || event.altKey)  
{   
    // 此处为IE关闭

}

else

{

  //此处为刷新

}  

这种方法,对于在页面上调用showModaldialog后,event.clientX的值显示不正常,不知道什么原因,现在没时间了,以后查到,再补上。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值