触发浏览器的关闭按钮的事件:onbeforeunload 方法的编写
我们作很多网站的时候,都回碰到用户不点击“注销”等类似功能的按钮来退出系统,而是直接关掉浏览器。
这就造成,我们的服务器,会增加很多不必要的负担。
为了解决这个问题,我们可以通过使用事件:“onbeforeunload”来进行我们想要的一些操作。
先举一个简单的例子:
<html>
<script>
function LeaveWin(){
alert('要关闭吗')
}
</script>
<body onbeforeunload="LeaveWin()">
</body>
</html>
我们把这段代码对应的html页面使用IE打开,然后关闭IE,我们就会发现,页面弹出了一个对话框:“要关闭吗”。
这说明,在关闭浏览器的时候,我们触发了LeaveWin()方法。
通过这个思路,我们就可以在自己的网站系统上加上对应的方法来。
例如:在Loushang平台中,注销的对应的URL是:logout.cmd?method=logout
那么,我们只要在框架页面(也叫主页面)上,加上如下的代码即可:
<script for="window" event="onbeforeunload">
if(document.body.clientWidth-event.clientX< 170&&event.clientY< 0||event.altKey){ top.location.href="logout.cmd?method=logout";
alert("欢迎下次光临");
}
</script>
问题点数:0、回复次数:3Top
1 楼huangdos(醉剑仙)回复于 2006-05-22 16:00:16 得分 0
不过,上面说的这种方法有一定的缺陷。
如果我们不是使用IE来进行页面的浏览的话,那么onbeforeunload 就可能不会被触发。
那就是,onbeforeunload 事件的触发,在使用IE的情况下才能确保一定生效。
其它的浏览软件,例如:TheWorld 就不行。
Top
2 楼xiaolongnv1212()回复于 2006-05-27 01:10:36 得分 0
如果不注销,服务器会维持多久的会话?直接随着浏览器关闭会话行么Top
3 楼huangdos(醉剑仙)回复于 2006-05-30 11:09:48 得分 0
如果不注销,直接关闭浏览器的话,那么会话会维持多久,就看服务器上对于会话的活动时间的设置了。
一般是30分钟。
如果客户端超过30分钟没有响应,那么即使没有关掉浏览器。会话也会失效的。Top




