2012-11-07 88 views
1

我試過window.onbeforeunload,但它似乎不起作用。任何幫助?在用戶關閉標籤頁/窗口之前做一些事情

我如果用戶登錄跟蹤的cookie。

function handleLoginRegSuccess(){ 
    $.cookie('loginStatus', "ON", { expires: 1, path: '/'}); 
    showBusyMessage(); 
    goToIndex(); 
} 

這是我嘗試過,但它不工作。

window.onbeforeunload = function(e) { 
    if(userLoginStatus()=="ON"){ 
     requestLogout(); 
     $.removeCookie('loginStatus'); 
     return "test"; 
    } 
}; 
+2

?如果用戶剛剛失去了互聯網連接或電源,該怎麼辦 – zerkms

+0

我需要在離開頁面時將用戶註銷。我發現可能有些情況我無法處理,但是很好。如果我玩一款遊戲,並且我的電腦關機,我的遊戲就會丟失。發生..... – MJB

+0

是的。因此,如果您能忍受用戶在電源或連接丟失的情況下「沒有正確」註銷的事實 - 假裝每次用戶決定關閉標籤時都會失去連接/電源? – zerkms

回答

2

因此,要回答你的直接問題,onbeforeunload需要一個返回值實際工作,這時它會提示與該字符串的用戶,他們會得到一個確認框。

在這個堆棧的回答更多細節:How can I override the OnBeforeUnload dialog and replace it with my own?

什麼你可以考慮,而不是,是有記錄的人出來,或(更積極)一個從讓他們記錄在客戶端心跳(會話超時通過ajax)。當心跳失敗時,它們會被註銷。

您還可以使用onunload事件,如果你不是想w至交互/所有用戶(如您的示例代碼似乎不這樣做):爲什麼你需要一個http://msdn.microsoft.com/en-us/library/ie/ms536973(v=vs.85).aspx

+0

是啊感謝您的意見,我會看看它。 – MJB

相關問題