我正在使用jQuery bind:
$(window).bind('beforeunload', function() {
//code
return "";
}
如果我不返回“”,它在mozilla firefox,IE8中运行正常。它没有给出一个警告框,上面写着“你确定要离开这个页面吗?” 但是在google chrome中,beforeunload事件在没有返回“”语句的情况下不起作用。
如果我使用return“”,它会在所有broswers中提供一个警告框。
我不想要对话框,我希望beforeunload事件能够正常工作。请帮忙。请建议是否有其他替代解决方案。感谢。
答案 0 :(得分:1)
onbeforeunload在浏览器中没有一致的行为
您应该将所有ajax调用设置为您在beforeunload事件中调用的函数内的async false
,然后尝试这个丑陋的黑客攻击:
$(window).on('beforeunload', function (e) {
if (e.originalEvent)
//Call function for updating omniture site
else //this is to provide enough time to all your other requests to be send
$.get("", {
async: false
});
$(this).trigger('beforeunload'); //will create kind of infinite loop
//this is an ugly hack because many useless request will be send (but nowhere)
}
测试并让我知道。