javascript - 导航 html 页面故障安全时,如何检查未保存的更改?
问题描述
我的网络应用程序有多个 html 页面。在给定的页面(我们称之为页面 A)上,用户可以对表单进行编辑。当用户导航到我的应用程序中的另一个页面时,我当前检查编辑的方法是使用下面的 js 脚本。
$(window).on('beforeunload', function () {
if (changes == true) {
return "this won't show, as the browsers won't show a custom message for security reasons, but is required";
};
});
当我第一次在我的应用程序中导航到另一个页面(我们称之为页面 B)时,这工作得很好。但是,如果我返回页面 A 并进行另一轮编辑,即使上面的函数运行并且我的变量“更改”为真,浏览器也不会显示您正在导航的警告消息。显然这是因为页面 B 已经被缓存了。我假设这是因为如果我强制重新加载页面 B 并返回页面 A 并导航离开,浏览器会正确显示警告消息。
在导航到另一个页面时,有什么更好的解决方案可以确保始终警告用户他们正在离开具有未保存更改的页面?
更新:这适用于 Chrome,但不适用于 Safari。
解决方案
推荐阅读
- asp.net-mvc - 读取从 javascript 传递的 Controller 中的多维数组
- c++ - Visual Studio 2015的编译参数(之前的工作使用g++)
- c++ - 为符号链接头中声明的所有内容获取“未在范围内声明”错误
- html - 如何让 4 个 div 组合在一起并并排显示?
- xml - 在 Scala 中将字符串作为 XML 加载时出错
- java - 我生成了一个 pdf,但是在保存它时会更新相同的 pdf 而不是新的
- wordpress - Wordpress WP_Query() 的最新帖子,但按类别 ID
- php - 如何在php中优化64 if else if语句
- node.js - 无法使用 bcrypt 散列密码
- python-3.x - 我不知道如何将按钮放在背景图片的顶部,我尝试了很多论坛,但答案都没有