我知道这个问题是老了,但如果有些人还是有这个问题,我发现似乎为我工作的一个解决方案,
基本上unload
事件在beforeunload
Ë后解雇发泄。我们可以用它来取消在beforeunload
事件创建超时,修改jAndy的回答是:
$(function() {
var beforeUnloadTimeout = 0 ;
$(window).bind('beforeunload', function() {
console.log('beforeunload');
beforeUnloadTimeout = setTimeout(function() {
console.log('settimeout function');
$(document.body).css('background-color', 'red');
},500);
return 'are you sure';
});
$(window).bind('unload', function() {
console.log('unload');
if(typeof beforeUnloadTimeout !=='undefined' && beforeUnloadTimeout != 0)
clearTimeout(beforeUnloadTimeout);
});
});
编辑:jsfiddle here
我不认为这是可能的......但我希望我错了。 – keithjgrant 2011-01-10 19:45:34
我很好奇你如何用自定义对话框阻止导航器。你能提供代码吗? – jAndy 2011-01-10 19:46:39
@jAndy,在Javascript中查找onbeforeunload事件,它正是如此。 – 2011-01-10 19:55:31