这是我的问题......
我希望在用户决定留下后执行操作。 由于我没有这样做的直接方式,我想使用setTimeout和setInterval如下:
我使用setInterval每秒检查一次页面,如果isOnBeforeUnload var为true,则表示用户通过绑定离开来触发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上工作。
谢谢!
答案 0 :(得分:3)
这是一个更简单的解决方案:
window.onbeforeunload = function () {
setTimeout(function () {
console.log('Stayed');
// The user stayed, so do whatever you want
}, 100);
return 'Dont go!';
};
Demo。它适用于FF和Chrome。不过,我无法在IE中测试。