在互联网上找到了一个工作脚本,但我无法更改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();
}
};
无论如何,这很有效。但是,当用户点击中止以继续访问该页面时,我想做点什么。
我怎么能这样做?
答案 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?';
});
您无法在FF中的确认信息中显示消息,原因在于RGraham在评论中链接的帖子中已接受的答案中所述。