您的位置:首页 > Web前端 > JavaScript

用JS在IE和火狐下判断网页是刷新还是关闭

2010-04-01 18:53 721 查看

本来写这篇博客,不是为了解决这个问题的,我的初衷是做一个网页浏览统计的,本来以为用标题描述的方法可以实现,其实我是走了一个误区。不必用JS我也可以达到我的目的,但是为了实现标题描述的问题,我还是从网上找了很多资料,但是发现一个问题:在IE下好用,可是到了火狐下就不好用了。于是乎,我做了一些测试,发现以下方法可以在IE和火狐下通用:
<script type="text/javascript">
function close(evt) //author: sunlei
{
    var isIE=document.all?true:false;
    evt = evt ? evt :(window.event ? window.event : null);
    if(isIE){//IE浏览器
        var n = evt.screenX - window.screenLeft;
        var b = n > document.documentElement.scrollWidth-20;
        if(b && evt.clientY<0 || evt.altKey){
            alert("是关闭而非刷新");
        }
        else{
            alert("是刷新而非关闭");
        }
    }
    else{//火狐浏览器
        if(document.documentElement.scrollWidth!=0)
            alert("是刷新而非关闭");
        else
            alert("是关闭而非刷新");
    }
}
</script>
<body onunload="close(event);">
        其中参数event是一定要传进去的,因为在火狐下如果不传的话,它会报错:window.event is not defined。当然,在IE下如果不传的话,是没有问题的。
        不过细心的人会发现,其实在火狐下进行判断的时候根本没有用到evt。其实把evt传进去,只是为了保证浏览器不会报错,其实可以做如下修改,效果是一样的:
<script type="text/javascript

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息