页面关闭时发出警报,在页面赢得关闭时执行某些操作

时间:2015-08-10 07:06:46

标签: javascript

在互联网上找到了一个工作脚本,但我无法更改FF的消息。哪个会很棒。 (适用于Chrome)

window.onbeforeunload = function(e) {
    if(!e) e = window.event;
    e.cancelBubble = true;
    e.returnValue = 'You sure you want to leave?';

    if(e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
};

无论如何,这很有效。但是,当用户点击中止以继续访问该页面时,我想做点什么。

我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

如果用户决定留在页面上,您可以使用定时功能执行某些操作。 onbeforeunload显示的确认框阻止执行,直到用户单击“确定”或“取消”。如果单击取消,将执行定时功能,否则页面将关闭,定时功能将永远不会执行。

代码将是这样的:

window.addEventListener('beforeunload', function (e) {
    e.preventDefault();
    e.returnValue = 'Do you want to leave the page?';
    setTimeout(function () { // Timeout to wait for user response
        setTimeout(function () { // Timeout to wait onunload, if not fired then this will be executed
            console.log('User stayed on the page.');
    }, 50)}, 50);
    return 'Do you want to leave the page?';
});

A working demo at jsFiddle

您无法在FF中的确认信息中显示消息,原因在于RGraham在评论中链接的帖子中已接受的答案中所述。