之前在我的“简单实现用户单例登录需求”一文中http://nicyea.iteye.com/blog/716312,简单的描述了对于用户点击IE浏览器关闭按钮后,session在一定时间内未清除,导致用户单例登录无法再次重新登录的问题。
我搜集了网上的一些资料,主要问题是要解决如何捕获到“IE关闭”的动作。如果可以捕获到“IE关闭”的动作,在关闭时调用后台执行session的清除,那么之前提到的问题也就可以解决了。
现将总结如下:
由于系统页面存在“框架”和“非框架”的不同,针对于这两种情况分别要不同的代码区捕获。
1、“框架”的系统页面:
<script language="javaScript">
function removeline(){
if(event.clientX<0&&event.clientY<0){
// alert("进入了removeline方法,捕捉有效!");
document.write('<iframe width="100" height="100" src="loginOff.html"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>');
document.all.WebBrowser.ExecWB(45,1);
}
}
</script>
然后在页面的Frameset标签中调用onUnload="removeline();"即可;
之前的代码并未对Alt+F4的关闭做捕获,所以如果要做捕获,请将
2、“非框架”的系统页面
<script language="javascript">
function window.onunload(){
if((window.screenLeft>=10000 && window.screenTop>=10000)||event.altKey)
{
// alert("识别到IE关闭,添加自己的代码实现服务器端session清除功能!");
}
}
</script>
以上代码只需要在{}中添加自己想要做的动作代码就OK。我们这里所说的清除session实际上都是调用后台实现的服务器端session的清除。
注意:看到有些朋友发现一些“非框架”页面使用这种方法带来的问题:假如用户打开了多个窗口(系统会不止只有一个窗口页面),如果关闭其中任意一个,那么其他打开的窗口也就取不到服务器端的session了。这一点在使用中需要注意。
在我的系统中,系统页面只会有一个,所以也就未对发现的问题做特殊的处理。
分享到:
相关推荐
- 解决更改排序方式后 ——对应右键菜单不同步问题。 - 优化右键更改列表状态,同步保存配置到服务端。 - 文件浏览器打开(a点击新窗口跳转,a不支持click,用子元素冒泡来实现点击) - 优化配置文件存储方案。直接由...
浏览器关闭,数据清空 存在内存中,除非自己删除 浏览器关闭,数据清空 存储信息 文本类型 字符串类型数据 同左 属性 是document属性 是window属性 同左 作用范围 无法跨域 同一浏览器不同页面可以共享数据 ...
bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。 含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。 用法: ...
实例089 关闭IE主窗口时,不弹出询问对话框 132 实例090 弹出提示对话框并重定向网页 133 3.8 弹出网页对话框 134 实例091 弹出全屏显示的网页模式对话框 134 实例092 网页拾色器 136 实例093 日期选择器...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 Visual C#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 ...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...
2 <br>0003 设置程序代码行序号 3 <br>0004 开发环境全屏显示 3 <br>0005 设置窗口的自动隐藏功能 3 <br>0006 根据需要创建所需解决方案 4 <br>0007 如何使用“验证的目标架构”功能 4 ...