日期:2014-05-16  浏览次数:20321 次

求助,非IE的浏览器如何判断刷新和关闭事件
众所周知,IE下的onbeforeunload事件会在页面关闭和刷新的时候被调用,非IE浏览器下相同的事件为beforeunload。

我需要判断浏览器事件,是刷新还是关闭,如果刷新不做任何处理,如果是关闭则执行某些操作,见如下的代码:

<script   language= "javascript ">
if(window.attachEvent)   {
window.attachEvent( "onbeforeunload ",   function()   {
alert( 'IE ');
if(event.clientX   >   document.body.clientWidth   &&   event.clientY <0   ||   event.altKey){      
                    alert( "DO   Something ");      
}      
});
}else   {
window.addEventListener( "beforeunload ",   function()   {
alert( 'Not   IE ');
//这里不知道怎么写,需要判断浏览器是刷新还是关闭,逻辑同IE。

},   true);
}

</script>
<body>
aaaaaaaaaaaaaaaaaaaaaaa
</body>

问题,IE下我可以通过window.event来判断用户是否点击了X关闭,或者是否使用Alt+F4关闭。对于非IE的浏览器,我该如何判断用户的动作?

请指点.。谢谢

------解决方案--------------------
ding
------解决方案--------------------
好久以前看见的,终于找到了,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>
------解决方案--------------------
不会,好好学习
------解决方案--------------------
up