2012-11-07 47 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

相关问题