关于这个需求我想不管是大项目还是小项目都是必要的,网上问的人也比较多,同样我也遇到了这样的需求,查阅了不少这方面的资料。然后通过实践,总结了一下。
鼠 标点击X窗口关闭IE的同时清空session,最基本的就是处理用户重复登陆需要用到,我想这个的关键在于如何捕捉到关闭IE这个动作,之后再根据自身 的需要使用session.invalidate()或者session.removeAttribute( "xxx ")都是水到渠成的事情。
下面我们就重点看看如何捕捉这个动作:
首先现在的系统的页面结构一般分为2种,
框架的和非框架的。
框架的:
<script language="javaScript">
function removeline(){
if(event.clientX<0&&event.clientY<0){
alert("我进入了removeline方法啦,说明捕捉有效!");
do***ent.write('<iframe width="100" height="100" src="XXX.jsp"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>');
do***ent.all.WebBrowser.ExecWB(45,1);
}
}
</script>
然后只需要在frameset里面调用该方法即可。
<frameset 。。。。。。。。。。。。。 onUnload="removeline();">
</frameset>
几 点注意之处:if(event.clientX<0&&event.clientY<0)这个条件没有对alt+F4关闭 IE进行捕捉,如果想添加,要改成if((event.clientX<0&&event.clientY<0& &) ||event.altKey)
Removeline方法中的XXX.JSP是你写具体如何清楚session的页面。
非框架的:
对于非框架的的处理和框架的会有所不同,实现方法如下;
<script language="javascript">
function window.onunload(){
if((window.screenLeft>=10000 && window.screenTop>=10000)||event.altKey)
{
alert("识别到关闭IE啦!!!");
}
}
</script>