【问题标题】:How to hook into the close event of IE如何挂钩到 IE 的关闭事件
【发布时间】:2011-11-29 01:54:24
【问题描述】:

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

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

关于捕获哪个事件来捕获 IE 窗口(6.0 和 7.0)和 Tab 关闭有什么想法吗?

【问题讨论】:

    标签: asp.net internet-explorer-7 internet-explorer-6


    【解决方案1】:

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

    【讨论】:

    • 正确。然后我会实现某种服务器端监控线程,它每 X 分钟检查一次每个会话的最后一个请求的时间戳,并在其中做你的家务。如果您真的想检查浏览器是否仍处于打开状态,您甚至可以向页面添加 AJAX 背景回发,但同样,它不是 100%
    【解决方案2】:

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

    如果您想运行一些服务器端脚本以将用户标记为已离开,那么再次,很难/不可能,正如 Jasper 提到的那样 global.ascx 会在某种程度上帮助您,但否则您将不得不有计时器和事件对“过期”用户触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-14
      • 2014-08-01
      • 2010-09-15
      • 2011-02-07
      • 2019-11-11
      • 1970-01-01
      • 2015-02-19
      • 2015-06-05
      相关资源
      最近更新 更多