我有一个用 MVC4 编写的单页应用程序,它使用 pjax()将 html 推送到我页面中的各个 s 中。我有一个子表单,允许用户编辑数据,如果用户更改数据,则会在 javascript 中设置 isDirty 标志,以触发页面底部有未保存的更新的警报。当用户尝试离开页面而不保存时,我还想实现额外的警告。如果我使用像这样的传统 onbeforeunload 函数
window.onbeforeunload = function() {
if (isDirty) {
return 'You have unsaved changes!';
}
return null;
};
如果我尝试关闭页面或完全离开该网站,它会调用警报,但如果用户单击我的链接之一,用一些不同的信息重新填充它,它不会触发,因为您实际上并没有离开这一页。我如何构建它,以便这些 pjax() 链接之一会引发类似于关闭页面时的警报?
最佳答案
您可以订阅在 pjax 请求之前触发的全局事件:
$(document).on('pjax:beforeSend', function() {
if (isDirty) {
return confirm('You have unsaved changes! Are you sure you want to continue?');
}
return true;
});
关于javascript - 如何为单页应用程序实现 isDirty 标志 onLeave?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10655460/