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

求助:怎么判断页面是关闭还是刷新
想用JS来判断,浏览器是关闭还是刷新,要兼容火狐,IE,chrome 主流的那几个浏览器都得兼容。

function CloseWindows(evt){
        var isIE=document.all?true:false;
        evt = evt ? evt :(window.event ? window.event : null);
        if(isIE){//IE浏览器
            if(evt.clientY<0 || evt.altKey){
                event.returnValue = Language_Lab_Index_LeaveWithoutSave;
            }
        }
        else{
                return Language_Lab_Index_LeaveWithoutSave;
        }
    }

在body中通过加入onbeforeunload="return CloseWindows(event)"。可以监听到上述浏览器的各种关闭离开页面的操作。但是很纠结的是这样写,在除了IE以外的浏览器 都没法判断是刷新还是关闭。求个大神指点下,其他的应该怎么写。谢谢了。
浏览器 chrome ie

------解决方案--------------------
将窗口引用存入一个变量,在窗口被关闭或刷新后通过这个变量来判断窗口的状态
前提是用户没有关闭所有的窗口。
------解决方案--------------------
我用过一个近似判断刷新的方法:
在beforeunload事件中用cookie记录当前时间,
在页面的开始部分添加js读取cookie中的时间,并与当前时间比较,如果差值小于一定值(比如5秒)就认为用户的操作是刷新。

这只是近似判断,满足一般情况,可能存在极限情况下判断错误
------解决方案--------------------
引用:
引用:我用过一个近似判断刷新的方法:
在beforeunload事件中用cookie记录当前时间,
在页面的开始部分添加js读取cookie中的时间,并与当前时间比较,如果差值小于一定值(比如5秒)就认为用户的操作是刷新。

这只是近似判断,满足一般情况,可能存在极限情况下判断错误

这方法不行啊,这是卸载掉当前页面,并从服务器端……

一个方法:控制客户端浏览器的刷新行为(屏蔽按钮、热键、菜单等等刷新途径),并提供刷新按钮给用户点。
另一个方法:从服务器端判断用户请求的url是否和其当前url相同(除去随机变化的参数),如果相同则直接返回退回上一页的js脚本。