在用户关闭选项卡/窗口之前执行某些操作

时间:2012-11-07 21:30:49

标签: javascript

我试过了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";
    }
};

1 个答案:

答案 0 :(得分:2)

因此,要直接回答你的问题,onbeforeunload需要一个实际工作的返回值,此时它会提示用户使用该字符串,他们将获得一个确认框。

此堆栈中的更多详细信息答案:How can I override the OnBeforeUnload dialog and replace it with my own?

您可能会考虑的是,有一个会话超时可以将该人员记录下来,或者(更积极地)来自客户端的心跳记录(通过ajax)。当心跳未能触发时,它们会被注销。

你也可以使用onunload事件,如果你没有尝试与用户进行交互(因为你的示例代码似乎没有):http://msdn.microsoft.com/en-us/library/ie/ms536973(v=vs.85).aspx