我创建了一个相当重 ajax 的网络应用程序,我正在使用该window.onbeforeunload
事件来检测用户是否有未保存的更改并阻止她离开页面。该代码由我的 init 函数加载,它曾经在支持该事件的所有浏览器上工作。然而,突然 onbeforeunload 事件无缘无故地停止在每个浏览器上触发。我正在使用 jquery 1.7.1,并且有很多事件附加到各种元素(通过委托或直接)。有谁知道这里可能是什么问题?这是一个代码片段:
$(document).ready( function() {
window.onbeforeunload = function(e) {
if($(window).data("confirm") > 0)
return "You have unsaved changes";
else
return null;
};
});
ps 即使我从回调中完全删除了检查并始终返回一个字符串,它应该每次都提示一条消息,它仍然不会触发。我已经检查了我的浏览器是否可以通过绑定回调的简单页面正确处理该事件。