我尝试了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";
}
};
最佳答案
因此,为了直接回答您的问题,onbeforeunload 需要一个返回值才能实际工作,此时它将用该字符串提示用户,并且他们会得到一个确认框。
此堆栈答案中的更多详细信息:How can I override the OnBeforeUnload dialog and replace it with my own?
您可能会考虑设置一个 session 超时来将用户注销,或者(更积极地)使用来自客户端的心跳来让他们保持登录状态(通过 ajax)。当心跳无法触发时,他们就会被注销。
如果您根本不尝试与用户交互(因为您的示例代码似乎没有这样做),您也可以使用 onunload 事件:http://msdn.microsoft.com/en-us/library/ie/ms536973(v=vs.85).aspx
关于javascript - 在用户关闭选项卡/窗口之前执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13278582/