这是我的问题...
一旦用户决定留下来,我想执行一个操作。 由于我没有直接的方法,因此我想使用 setTimeout 和 setInterval ,如下所示:
我使用 setInterval 每秒检查一次页面,如果 isOnBeforeUnload 变量为 true,则意味着用户通过绑定(bind)离开触发了 onbeforeunload 事件。
我想要发生的是数到 1 秒,假设一秒后页面尚未卸载 - 用户留下来。
window.onbeforeunload = function() {
isOnBeforeUnload = true;
return "You have an unsaved update!";
};
window.timeout = setInterval(function() {
if (isOnBeforeUnload) {
var timeoutID = window.setTimeout(doClick, 1000);
isOnBeforeUnload = false;
}
}, 1000);
function doClick() {
//do some actions...
}
这段代码在 Chrome 和 IE 上运行良好,但在 FF 上不行...有人可以帮忙吗?我需要它在 IE9、10、11、Chrome 和 FF 上工作。
谢谢!
最佳答案
这是一个更简单的解决方案:
window.onbeforeunload = function () {
setTimeout(function () {
console.log('Stayed');
// The user stayed, so do whatever you want
}, 100);
return 'Dont go!';
};
Demo 。它适用于 FF 和 Chrome。但我无法在 IE 中进行测试。
关于javascript - 当用户决定在 onbeforeunload 事件后留下时执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850793/