弄了一个用户关闭浏览器非法退出系统,
使用onbeforeunload和onunload 操作,在网上看了看基本上都是使用 window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}实际他并没有起作用。请教谁有这方面的经验
使用onbeforeunload和onunload 操作,在网上看了看基本上都是使用 window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}实际他并没有起作用。请教谁有这方面的经验
如果不退出就关闭窗口,session就会自动失效(取决于你后端如何设置session过期),那么登陆也会失效的。
那么这个session失效是?
那么这个session失效是?好吧,要实现这个功能,所以就要判断用户关闭窗口?
那你有没有想过,如果用户打开了两个标签,关闭其中一个,你通知了后台说该用户下线了,你说他是在线呢还是下线状态呢?所以,你的解决方案,第一,行不通,第二,就算行得通也有逻辑上的bug。你这个“登陆状态”是单纯标志当前用户是否在线之用,还是时时记录网站的当前所有在线人数之用?
那么这个session失效是?好吧,要实现这个功能,所以就要判断用户关闭窗口?
那你有没有想过,如果用户打开了两个标签,关闭其中一个,你通知了后台说该用户下线了,你说他是在线呢还是下线状态呢?所以,你的解决方案,第一,行不通,第二,就算行得通也有逻辑上的bug。你这个“登陆状态”是单纯标志当前用户是否在线之用,还是时时记录网站的当前所有在线人数之用?只记录当前用户是否在线。确实这样的设计是有问题的,有好的设计我可以试试。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。楼主还是先了解了解session机制的具体细节吧。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。楼主还是先了解了解session机制的具体细节吧。后台是MVC的, 好像关闭浏览器也不会触发Session_End事件的。
以后每一次请求,都可以判断session中是否有已登陆的相关信息。你说的防止重复登录,完全可以在登陆操作之前判断session来阻止已登陆用户进行此操作。楼主还是先了解了解session机制的具体细节吧。后台是MVC的, 好像关闭浏览器也不会触发Session_End事件的。防止重复我已实现,我是考虑的就是,当用户直接关闭浏览器时他的状态还是在线状态,那么下次登录时就会提示重复登录。
丢进去以后然后在Session_End中如何处理呢?
isset($_SESSION['user']);request.getSession().getAttribute("user") != null;
其他语言类似。
不需要在session_end中做处理的。
后台语言会自动维护session,记录最后活跃时间,因此不用担心的。
你需要在web.config中配置吗?
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。
没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null
没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null好吧,我也不懂MVC2神马的,你这个问题可以转到ASP.NET板块了,和js无关的哦。
没明白你的后台到底是什么,MVC是设计思想的说。
请自行百度你所用的后端语言的session默认过期时间,以及如何手动调整这个时间。MVC2。
我登录时用Session保存当前用户,然后再打开一个页面用相同浏览器登录session还是null好吧,我也不懂MVC2神马的,你这个问题可以转到ASP.NET板块了,和js无关的哦。好的,多谢。
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; 了吗?
我在IE9下测试也是不行嘚
window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
return false;
}加 return false; 了吗?亲测,么有问题。
我在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>
这是我的测试代码,刷新和关闭执行的事件都一样!!