首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

js怎么区分刷新事件和关闭事件

2013-07-20 
js如何区分刷新事件和关闭事件 弄了一个用户关闭浏览器非法退出系统, 使用onbeforeunload和onunload 操作,

js如何区分刷新事件和关闭事件
 弄了一个用户关闭浏览器非法退出系统,
 使用onbeforeunload和onunload 操作,在网上看了看基本上都是使用


 window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
     alert("你关闭了浏览器");
}else{
     alert("你正在刷新页面");
}
}

实际他并没有起作用。请教谁有这方面的经验
[解决办法]
引用:
Quote: 引用:

为什么要区分刷新和关闭呢?

没明白什么叫非法退出系统。
如果不退出就关闭窗口,session就会自动失效(取决于你后端如何设置session过期),那么登陆也会失效的。

我提的非法退出系统就是 我在登陆时设置了他的登陆状态,想在他强制关闭网页时把状态置为下线状态,
那么这个session失效是?


好吧,要实现这个功能,所以就要判断用户关闭窗口?
那你有没有想过,如果用户打开了两个标签,关闭其中一个,你通知了后台说该用户下线了,你说他是在线呢还是下线状态呢?

所以,你的解决方案,第一,行不通,第二,就算行得通也有逻辑上的bug。

你这个“登陆状态”是单纯标志当前用户是否在线之用,还是时时记录网站的当前所有在线人数之用?
[解决办法]
引用:
Quote: 引用:

Quote: 引用:


window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 
[解决办法]
 event.altKey){
     alert("你关闭了浏览器");
}else{
     alert("你正在刷新页面");
}
return false;
}


1.这中写法IE中支持较好
2.Chrome 仅会弹出是否离开此页/是否重新加载此页。不会执行alert。
3.FireFox 会执行alert后关闭窗口。
没有过多研究,请见谅


我在IE9下测试也是不行嘚



window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 
[解决办法]
 event.altKey){
     alert("你关闭了浏览器");
}else{
     alert("你正在刷新页面");


}
return false;
}

加 return false; 了吗?



亲测,么有问题。

热点排行