window.onbeforeunload 不会立即触发



我在我的Web应用程序中使用jQuery Dirty Forms插件,如下所示:

$(document).ready(function(){
 $('form.checkUnsavedData').dirtyForms();           
});
$(window).on('beforeunload', function(){    
    if($.DirtyForms.isDirty()){             
        return($.DirtyForms.message);                               
    }           
});

但是,首次单击任何链接都不会触发onbeforeunload事件。只有下一次点击才会触发它。这个问题在不同的浏览器中(谷歌浏览器,火狐,ie10)。怎么了?

我相信你需要添加onBeforeUnload API,正如它在drupal Download & expand中所说的那样,否则你应该尽量不要通过jQuery绑定beforeunload,而是使用普通的javascript来做,比如:window.beforeunload = function(){/*code*/};。最后检查您使用的jQuery版本,哪些浏览器以及它们如何处理此事件。查看 Catch the Javascript beforeunload 事件,跨浏览器的方式有点过时,但它可能会帮助你。

怎么了?

脏窗体会自动附加到beforeunload事件。你又在做一次。这可能会导致您的问题行为。您应该将代码更改为仅...

$(document).ready(function(){
  $('form.checkUnsavedData').dirtyForms();           
});

相关内容

  • 没有找到相关文章

最新更新