[英]Detecting browser's closing tab
我目前在我的javascript上使用window.onbeforeunload函數來檢測瀏覽器的關閉選項卡。 我只希望在用戶點擊結束標簽時運行該功能。 但是,當用戶從一個頁面導航到另一個頁面(操作結果到操作結果)時,此功能也會運行。 我正在asp.net mvc 4上編寫代碼。感謝提前。
window.onbeforeunload = function () {
};
在ASP.net MVC中有一種方法可以做到這一點,但你必須考慮所有場景。
正如你所說onbeforeunload
運行導航。 因此,如果你能找到一種方法來考慮用戶沒有導航但是他不在那里你可以實現你的目標。
所以我建議使用SignalR
+ onbeforeunload
,因為無論你是否導航或關閉SignalR中的選項卡,用戶都將斷開連接並且你有一個OnDisconnected
事件。
所以現在您知道用戶已離開頁面,但您不知道他是否已導航或關閉了選項卡。 在這種情況下,如果觸發了onbeforeunload
事件,則使用onbeforeunload
向服務器發送消息。 現在考慮兩個解決方案,你就是黃金。
那么會發生什么:在關閉選項卡或窗口時:調用onbeforeunload
並向服務器發送一條消息,說connectionId
= X已經導航,如果在很短的時間之后服務器中的connectionId
傳遞給OnDisconnected
你確定他關閉了標簽。
當然這兩個操作發生在不同的線程中,並且它們有點超過頂部,但如果您認真對待在您的網站中獲得此認可,這將是我的方法,因為我對解決方案不是100%有信心是一個很好的解決方案但是它可能是為數不多的之一!
當然,如果您不想使用SignalR
, Websocket
也是另一種方式,而不是SignalR
但不能在SignalR
可以使用的舊瀏覽器中工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.