js如何区分刷新事件和关闭事件

时间:2021-11-11 03:27:44
 弄了一个用户关闭浏览器非法退出系统,
 使用onbeforeunload和onunload 操作,在网上看了看基本上都是使用

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

实际他并没有起作用。请教谁有这方面的经验

27 个解决方案

#1


或者谁对用户非法退出系统 注销账号有什么建议。

#2


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

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

#3


引用 2 楼 l676331991 的回复:
为什么要区分刷新和关闭呢?

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

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

#4


引用 3 楼 LOVESONGFOREVER 的回复:
Quote: 引用 2 楼 l676331991 的回复:

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

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

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


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

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

你这个“登陆状态”是单纯标志当前用户是否在线之用,还是时时记录网站的当前所有在线人数之用?

#5


引用 4 楼 l676331991 的回复:
Quote: 引用 3 楼 LOVESONGFOREVER 的回复:

Quote: 引用 2 楼 l676331991 的回复:

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

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

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


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

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

你这个“登陆状态”是单纯标志当前用户是否在线之用,还是时时记录网站的当前所有在线人数之用?


只记录当前用户是否在线。

确实这样的设计是有问题的,有好的设计我可以试试。

#6


如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

#7


引用 6 楼 l676331991 的回复:
如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。

#8


引用 7 楼 LOVESONGFOREVER 的回复:
Quote: 引用 6 楼 l676331991 的回复:

如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。


后端语言都会有session机制的,你后端是php还是java还是其他?

登陆的流程是:获取提交的表单,检查用户和密码是否正确,如果正确,把用户已登陆的信息放入session。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。

楼主还是先了解了解session机制的具体细节吧。

#9


引用 8 楼 l676331991 的回复:
Quote: 引用 7 楼 LOVESONGFOREVER 的回复:

Quote: 引用 6 楼 l676331991 的回复:

如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。




后端语言都会有session机制的,你后端是php还是java还是其他?

登陆的流程是:获取提交的表单,检查用户和密码是否正确,如果正确,把用户已登陆的信息放入session。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。

楼主还是先了解了解session机制的具体细节吧。


后台是MVC的, 好像关闭浏览器也不会触发Session_End事件的。

#10


引用 9 楼 LOVESONGFOREVER 的回复:
Quote: 引用 8 楼 l676331991 的回复:

Quote: 引用 7 楼 LOVESONGFOREVER 的回复:

Quote: 引用 6 楼 l676331991 的回复:

如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。




后端语言都会有session机制的,你后端是php还是java还是其他?

登陆的流程是:获取提交的表单,检查用户和密码是否正确,如果正确,把用户已登陆的信息放入session。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。

楼主还是先了解了解session机制的具体细节吧。


后台是MVC的, 好像关闭浏览器也不会触发Session_End事件的。


防止重复我已实现,我是考虑的就是,当用户直接关闭浏览器时他的状态还是在线状态,那么下次登录时就会提示重复登录。

#11


那是因为session有失效的时间,你不用管这些。把登陆信息往session里丢就是了。session机制就是来解决HTTP无状态的问题的。

#12


好吧,不知道你是怎么做已登陆验证的。

#13


引用 11 楼 l676331991 的回复:
那是因为session有失效的时间,你不用管这些。把登陆信息往session里丢就是了。session机制就是来解决HTTP无状态的问题的。


丢进去以后然后在Session_End中如何处理呢?

#14


session有一定的失效时间。因此,在session未失效期间,用户又重新回到你的网站,此时,用户还是已登陆状态的。如果用户离开的时间达到session失效时间,那么用户真的就下线了。一般我会把user这个对象放入session中,判断用户是否登陆的代码就是:


isset($_SESSION['user']);



request.getSession().getAttribute("user") != null;


其他语言类似。
不需要在session_end中做处理的。

#15


session到达超时时间,会自动销毁,因此超时后以上代码会返回false。
后台语言会自动维护session,记录最后活跃时间,因此不用担心的。

#16


引用 14 楼 l676331991 的回复:
session有一定的失效时间。因此,在session未失效期间,用户又重新回到你的网站,此时,用户还是已登陆状态的。如果用户离开的时间达到session失效时间,那么用户真的就下线了。一般我会把user这个对象放入session中,判断用户是否登陆的代码就是:


isset($_SESSION['user']);



request.getSession().getAttribute("user") != null;


其他语言类似。
不需要在session_end中做处理的。



你的意思是用Session来记录当前的在线用户。 那么这时Session的默认时间是多长呢, 我关闭浏览器后多长时间这个session会失效呢?

#17


引用 15 楼 l676331991 的回复:
session到达超时时间,会自动销毁,因此超时后以上代码会返回false。
后台语言会自动维护session,记录最后活跃时间,因此不用担心的。


你需要在web.config中配置吗?

#18



引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。

#19


引用 18 楼 l676331991 的回复:
引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。


MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null

#20


引用 19 楼 LOVESONGFOREVER 的回复:
Quote: 引用 18 楼 l676331991 的回复:


引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。


MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null


好吧,我也不懂MVC2神马的,你这个问题可以转到ASP.NET板块了,和js无关的哦。

#21


引用 20 楼 l676331991 的回复:
Quote: 引用 19 楼 LOVESONGFOREVER 的回复:

Quote: 引用 18 楼 l676331991 的回复:


引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。


MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null


好吧,我也不懂MVC2神马的,你这个问题可以转到ASP.NET板块了,和js无关的哦。


好的,多谢。

#22


js如何区分刷新事件和关闭事件

#23



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后关闭窗口。
没有过多研究,请见谅

#24


引用 23 楼 tsgx_1989 的回复:

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下测试也是不行嘚

#25


引用 24 楼 LOVESONGFOREVER 的回复:
Quote: 引用 23 楼 tsgx_1989 的回复:


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; 了吗?

#26


引用 25 楼 tsgx_1989 的回复:
Quote: 引用 24 楼 LOVESONGFOREVER 的回复:

Quote: 引用 23 楼 tsgx_1989 的回复:


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; 了吗?


亲测,么有问题。

#27


引用 26 楼 tsgx_1989 的回复:
Quote: 引用 25 楼 tsgx_1989 的回复:

Quote: 引用 24 楼 LOVESONGFOREVER 的回复:

Quote: 引用 23 楼 tsgx_1989 的回复:


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; 了吗?


亲测,么有问题。


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


这是我的测试代码,刷新和关闭执行的事件都一样!! 

#1


或者谁对用户非法退出系统 注销账号有什么建议。

#2


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

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

#3


引用 2 楼 l676331991 的回复:
为什么要区分刷新和关闭呢?

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

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

#4


引用 3 楼 LOVESONGFOREVER 的回复:
Quote: 引用 2 楼 l676331991 的回复:

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

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

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


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

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

你这个“登陆状态”是单纯标志当前用户是否在线之用,还是时时记录网站的当前所有在线人数之用?

#5


引用 4 楼 l676331991 的回复:
Quote: 引用 3 楼 LOVESONGFOREVER 的回复:

Quote: 引用 2 楼 l676331991 的回复:

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

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

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


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

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

你这个“登陆状态”是单纯标志当前用户是否在线之用,还是时时记录网站的当前所有在线人数之用?


只记录当前用户是否在线。

确实这样的设计是有问题的,有好的设计我可以试试。

#6


如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

#7


引用 6 楼 l676331991 的回复:
如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。

#8


引用 7 楼 LOVESONGFOREVER 的回复:
Quote: 引用 6 楼 l676331991 的回复:

如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。


后端语言都会有session机制的,你后端是php还是java还是其他?

登陆的流程是:获取提交的表单,检查用户和密码是否正确,如果正确,把用户已登陆的信息放入session。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。

楼主还是先了解了解session机制的具体细节吧。

#9


引用 8 楼 l676331991 的回复:
Quote: 引用 7 楼 LOVESONGFOREVER 的回复:

Quote: 引用 6 楼 l676331991 的回复:

如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。




后端语言都会有session机制的,你后端是php还是java还是其他?

登陆的流程是:获取提交的表单,检查用户和密码是否正确,如果正确,把用户已登陆的信息放入session。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。

楼主还是先了解了解session机制的具体细节吧。


后台是MVC的, 好像关闭浏览器也不会触发Session_End事件的。

#10


引用 9 楼 LOVESONGFOREVER 的回复:
Quote: 引用 8 楼 l676331991 的回复:

Quote: 引用 7 楼 LOVESONGFOREVER 的回复:

Quote: 引用 6 楼 l676331991 的回复:

如果是要单纯实现标志当前用户为合法的登陆用户,session机制就是你要的。

如果你在统计网站的在线人数,这样吧,建一个online_user表,记录用户的最后活跃时间。用一个定时任务,每隔10分钟或者30分钟,扫描一下这个表,判断用户的最后活跃时间,如果超出你设定的时间,就认为该用户已下线。

我主要意图不是统计当前在线用户,只是为了防止重复登录,目前就是不知道怎么处理用户非法退出系统时注销的问题。




后端语言都会有session机制的,你后端是php还是java还是其他?

登陆的流程是:获取提交的表单,检查用户和密码是否正确,如果正确,把用户已登陆的信息放入session。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。

楼主还是先了解了解session机制的具体细节吧。


后台是MVC的, 好像关闭浏览器也不会触发Session_End事件的。


防止重复我已实现,我是考虑的就是,当用户直接关闭浏览器时他的状态还是在线状态,那么下次登录时就会提示重复登录。

#11


那是因为session有失效的时间,你不用管这些。把登陆信息往session里丢就是了。session机制就是来解决HTTP无状态的问题的。

#12


好吧,不知道你是怎么做已登陆验证的。

#13


引用 11 楼 l676331991 的回复:
那是因为session有失效的时间,你不用管这些。把登陆信息往session里丢就是了。session机制就是来解决HTTP无状态的问题的。


丢进去以后然后在Session_End中如何处理呢?

#14


session有一定的失效时间。因此,在session未失效期间,用户又重新回到你的网站,此时,用户还是已登陆状态的。如果用户离开的时间达到session失效时间,那么用户真的就下线了。一般我会把user这个对象放入session中,判断用户是否登陆的代码就是:


isset($_SESSION['user']);



request.getSession().getAttribute("user") != null;


其他语言类似。
不需要在session_end中做处理的。

#15


session到达超时时间,会自动销毁,因此超时后以上代码会返回false。
后台语言会自动维护session,记录最后活跃时间,因此不用担心的。

#16


引用 14 楼 l676331991 的回复:
session有一定的失效时间。因此,在session未失效期间,用户又重新回到你的网站,此时,用户还是已登陆状态的。如果用户离开的时间达到session失效时间,那么用户真的就下线了。一般我会把user这个对象放入session中,判断用户是否登陆的代码就是:


isset($_SESSION['user']);



request.getSession().getAttribute("user") != null;


其他语言类似。
不需要在session_end中做处理的。



你的意思是用Session来记录当前的在线用户。 那么这时Session的默认时间是多长呢, 我关闭浏览器后多长时间这个session会失效呢?

#17


引用 15 楼 l676331991 的回复:
session到达超时时间,会自动销毁,因此超时后以上代码会返回false。
后台语言会自动维护session,记录最后活跃时间,因此不用担心的。


你需要在web.config中配置吗?

#18



引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。

#19


引用 18 楼 l676331991 的回复:
引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。


MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null

#20


引用 19 楼 LOVESONGFOREVER 的回复:
Quote: 引用 18 楼 l676331991 的回复:


引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。


MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null


好吧,我也不懂MVC2神马的,你这个问题可以转到ASP.NET板块了,和js无关的哦。

#21


引用 20 楼 l676331991 的回复:
Quote: 引用 19 楼 LOVESONGFOREVER 的回复:

Quote: 引用 18 楼 l676331991 的回复:


引用
后台是MVC的,


没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。


MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null


好吧,我也不懂MVC2神马的,你这个问题可以转到ASP.NET板块了,和js无关的哦。


好的,多谢。

#22


js如何区分刷新事件和关闭事件

#23



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后关闭窗口。
没有过多研究,请见谅

#24


引用 23 楼 tsgx_1989 的回复:

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下测试也是不行嘚

#25


引用 24 楼 LOVESONGFOREVER 的回复:
Quote: 引用 23 楼 tsgx_1989 的回复:


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; 了吗?

#26


引用 25 楼 tsgx_1989 的回复:
Quote: 引用 24 楼 LOVESONGFOREVER 的回复:

Quote: 引用 23 楼 tsgx_1989 的回复:


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; 了吗?


亲测,么有问题。

#27


引用 26 楼 tsgx_1989 的回复:
Quote: 引用 25 楼 tsgx_1989 的回复:

Quote: 引用 24 楼 LOVESONGFOREVER 的回复:

Quote: 引用 23 楼 tsgx_1989 的回复:


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; 了吗?


亲测,么有问题。


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


这是我的测试代码,刷新和关闭执行的事件都一样!!