我在我的网络应用程序中使用了一个jQuery Dirty Forms插件,如下所示:
$(document).ready(function(){
$('form.checkUnsavedData').dirtyForms();
});
$(window).on('beforeunload', function(){
if($.DirtyForms.isDirty()){
return($.DirtyForms.message);
}
});
但首先点击任何链接都不会触发onbeforeunload事件。只有下一次点击才能触发它。此问题保留在不同的浏览器中(谷歌浏览器,Firefox,ie10)。怎么了?
答案 0 :(得分:1)
我相信您需要添加onBeforeUnload API正如drupal Download & extend中所说的那样,否则您应该尝试不通过jQuery绑定beforeunload
并使用普通的javascript来执行此操作: window.beforeunload = function(){/*code*/};
。最后检查一下您使用的jQuery版本,浏览器以及它们如何处理此事件。查看Catching the Javascript beforeunload event, the cross-browser way它有点过时,但它可能对您有帮助。
答案 1 :(得分:0)
什么事?
Dirty Forms会自动附加到beforeunload
事件。你正在再次。这可能会导致您的问题行为。您应该将代码更改为......
$(document).ready(function(){
$('form.checkUnsavedData').dirtyForms();
});