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

标签 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";
    }
};

最佳答案

因此,为了直接回答您的问题,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/

相关文章:

javascript - 使用 Fancybox 进行图像旋转

javascript - 在以下示例中,JavaScript 闭包是如何工作的?

javascript - 使用 .addClass 函数时单击时不会显示边框

javascript - 选择选项后自动显示数据库值

javascript - NodeJS readline 有时会打印回第一个输入行(但并非总是如此,似乎是随机的)

php - 使用js将文本插入数据库时​​出现问题

javascript - 为什么我的 Ramda 管道功能不能与过滤器一起使用?

javascript - 如何使用 React 构建 "Advanced Search Options"下拉菜单?

javascript - javascript/jquery-获取并保留元素的初始html内容

javascript - 检查提到的个人资料是否是机器人