2010-11-10 78 views
1

我想在ASP.NET Web应用程序中执行一些清理操作,当用户关闭IE窗口或页面打开的标签页时。如何挂入IE的关闭事件

我正在查看“body”元素的卸载事件,但是当您单击IE中的刷新按钮或通过在地址栏中键入来更改URL时,unload事件也会被触发。

任何想要捕捉IE窗口(6.0和7.0)和Tab关闭的事件?

回答

1

在global.ascx中使用InProc会话和Session_End事件来执行清理。 javascript对此太不可靠了。

+0

会话在分布式缓存上进程不正常。 – Metallikanz 2010-11-13 05:19:10

+0

没错。我会实现某种服务器端监视器线程,然后检查每个会话每次会话的最后一次请求的时间戳,并在其中进行管理。你甚至可以添加一个AJAX背景回发到你的页面,如果你真的想检查浏览器是否仍然打开,但它不是100% – jasper 2010-11-13 05:37:46

0

由于安全原因,Javascript将不可靠/相当受限制。这真的取决于你想要做什么,如果你试图在客户端机器上启动一些代码,那么这将是困难/不可能的(这是一件好事,我并不真的想要我不信任的网站在最关键的功能之一上打乱我的浏览器,关闭一个窗口)。

如果你想运行一些服务器端脚本来标记用户已经消失,再次,难以/不可能,因为Jasper提到global.ascx会帮助你,但除此之外你必须有定时器和发生在'过期'用户上的事件。