我正在尝试使用onbeforeunload来处理各种类型的计时器,但是当返回到位时我似乎无法启动它。我希望它可以使用计时器但由于某种原因计时器不工作。这是我正在使用的代码,感谢您的帮助,非常感谢。
var validNavigation = false;
function wireUpEvents() {
var leave_message = 'Leaving the page';
jQuery(
function goodbye() {
jQuery(window).bind('onbeforeunload', function() {
setTimeout(function() {
setTimeout(function() {
jQuery(document.body).css('background-color', 'red');
}, 10000);
},1);
return leave_message;
});
});
function leave() {
if(!validNavigation) {
killSession();
}
}
//set event handlers for the onbeforeunload and onunloan events
window.onbeforeunload = goodbye;
window.onunload=leave;
}
// Wire up the events as soon as the DOM tree is ready
jQuery(document).ready(function () {
wireUpEvents();
});
答案 0 :(得分:4)
onBeforeUnload
不适用于setTimeout
。 onBeforeUnload
执行后,onUnload
将被触发,页面也会发生变化。这是在调用setTimeout
回调之前发生的。
答案 1 :(得分:0)
@Jonh Kurlak是正确的,onbeforeunload确实可以与超时一起使用,以保护浏览器用户免受欺诈。
但是您可以做些什么!!!
for(var i = 0; i < 1000; i++){
console.log(i);
}
您可以将此设置为循环打印到控制台以延迟页面的卸载,而循环的次数越多,等待的时间就越长。