2012-06-28 266 views
0

非常簡單的問題。當用戶關閉他的瀏覽器時,我需要執行一項任務。 我知道下面的功能:JQuery - 在瀏覽器關閉事件上執行任務

 
$(window).bind("beforeunload", function() { 
    return false; 
}) 

$(window).unload(function() { 
    return false; 
}) 

但是這兩種 - 彈出一個警告,詢問用戶 - 「留在這個頁面上的」 - 「保留此頁」(ATLEAST在Chrome)。

我不希望發生這種情況。當他關閉它時,我只想執行一項任務,比如更新數據庫上的時間以及他何時離開。

任何想法 感謝

+0

這是相當不便攜的。不同的瀏覽器針對不同的事情觸發「卸載」事件(當您導航時,關閉窗口或其他時)。即使是「beforeunload」事件也不是很可靠(=你必須測試許多瀏覽器/版本的組合)。如果不返回任何對話框,則不應顯示該對話框,可以使用返回值來提示用戶(例如,當您編輯答案時離開時離開)。只是做你的東西(可能與一個異步AJAX調用,就是這麼簡單,只是認爲它可能會被刷新刷新)。 –

+0

是的,我看到你的觀點 - 謝謝 – Gublooo

回答

1

這是不可能正確地跨瀏覽器完成的,因爲Opera實際上並不支持它:\如此處所述:cross-browser Onunload and Onbeforeunload ? (particularly opera 11)以及許多其他有據可查的地方。

也像其他人提到的那樣有不同程度的實現,例如Firefox可以將自己的消息添加到在beforeunload中顯示的警報框,但在Chrome中您不能,它只會顯示一些通用消息,真的很有道理。

+0

感謝您的鏈接 – Gublooo

+0

np希望它有助於:) – Sammaye

0

您可以保存定期(使用AJAX)的用戶存在或只需登錄到服務器的最後一個請求(後端)。