我已经创建了一个相当Ajax的沉重的Web应用程序,我使用的window.onbeforeunload
事件来检测是否存在由用户未保存的更改,并防止她从导航离开页面。代码由我的init函数加载,并用于支持事件的所有浏览器。但是,onbeforeunload事件突然停止在所有浏览器上触发,原因不明。我使用jQuery 1.7.1,并且有很多事件附加到各种元素(通过委托或直接)。有没有人有线索可能是这里的问题?这是一个代码片段:window.onbeforeunload没有发射
$(document).ready(function() {
window.onbeforeunload = function(e) {
if($(window).data("confirm") > 0)
return "You have unsaved changes";
else
return null;
};
});
p.s.即使我完全删除回调中的支票,并且总是返回一个字符串,每次都会提示一条消息,但它仍然不会触发。我已经检查过我的浏览器正在使用与绑定回调的简单页面的事件正常工作。
有可能是错误的是别的地方,因为这样的代码片段看起来好像没什么问题。也许它是解雇,但没有展示对话? – 11684 2012-04-22 09:09:37
控制台说什么? – 11684 2012-04-22 09:11:41
至11684:事件绝对不是解雇,我试图打印出一些东西给控制台,我什么也没有得到。此外,我添加了一个断点并试图进行调试,但每当我离开页面时都不会暂停。这个问题是其他地方我猜,但我不会在整个页面的其他地方惹事件,除非其中一个库...嗯 – nvrs 2012-04-22 09:26:40