【发布时间】:2011-06-17 10:28:31
【问题描述】:
我一直在尝试找到解决 Safari/Chrome 中后退按钮错误的解决方法(浏览器将虚假数据放在不属于它们的字段中)。我没有运气,现在看来应该有一个很好的解决方案(我看到关于这个问题的帖子可以追溯到 2009 年,但没有很好的解决方案)。
在本例中:http://jsfiddle.net/eGutT/13/
您可以看到在初始页面加载时一切正常。但是,在单击链接后,然后单击浏览器上的后退按钮,值会传播到错误的字段。请使用 Safari 或 Chrome 进行测试。它在 Firefox 上运行良好。
这是一个非常严重的问题,尤其是在:
- 用户点击返回按钮,出现此错误
- 用户没有注意到虚假数据
- 用户对表单进行了一些不相关的更改(在不同的未受影响的字段中)
- 用户提交表单
现在您面临的情况是虚假数据被提交到数据库!
顺便说一句,这个问题可能与 jQuery 有关,因为如果您在示例中取消注释此行:
updateRowNums(); // IF YOU COMMENT OUT THIS LINE...
不会引入额外/虚假数据。
谢谢, 盖伦
【问题讨论】:
-
谢谢,您已经解决了其他帖子中的问题。尽管具有 name 属性是一种解决方法,但它仍然是一个 webkit 错误。换句话说,如果 webkit 不确定要填充的字段,它不应该随意选择一个:)
-
以防万一用户今天仍然遇到这个问题:了解 bfcache(例如通过this blog post)并查看here 如何挂钩一些代码以进行整理前一页状态。
标签: javascript jquery google-chrome safari back