我在卸载和卸载方法之前遇到了一些问题。我认为我在onload方法上设置正确的代码只在onbeforeunload的confirm方法设置为true后启动。但遗憾的是情况并非如此,即使将onbeforeunload方法设置为false并且该人想要留在网站上,正在发生的是卸载方法正在启动。以下是我正在处理的代码已经发生了很大变化,因为我开始希望它没关系。我确信它不是因为它不按照我想要的方式工作。
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 :(得分:3)
onbeforeunload
不像您认为的那样有效。你可以从处理程序返回一个字符串,它会提示一个消息,或undefined
什么也不做。
window.onbeforeunload = goodbye;
function goodbye(e) {
if (!validNavigation) {
return leave_message;
} else {
return undefined;
}
}
相关:Way to know if user clicked Cancel on a Javascript onbeforeunload Dialog?