2010-11-10 47 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會幫助你,但除此之外你必須有定時器和發生在'過期'用戶上的事件。