繁体   English   中英

Chrome / Safari中的后退按钮错误

[英]Back button bug in Chrome/Safari

我一直试图找到Safari / Chrome中后退按钮错误的解决方法(浏览器将虚假数据放在他们不属于的字段中)。 我没有运气,似乎现在应该有一个很好的解决方案(我看到有关这个的帖子可以追溯到2009年,但没有好的解决方案)。

在这个例子中: http//jsfiddle.net/eGutT/13/

你可以看到初始页面加载时一切正常。 但是,在单击链接,然后单击浏览器上的后退按钮后,值将传播到错误的字段。 请使用Safari或Chrome进行测试。 它适用于Firefox。

这是一个非常严重的问题,尤其是在:

  1. 用户点击后退按钮,发生此错误
  2. 用户不会注意到虚假数据
  3. 用户对表单进行了一些不相关的更改(在不同的未受影响的字段中)
  4. 用户提交表单

现在,您将面临伪造数据提交到数据库的情况!

顺便说一下,这个问题可能与jQuery有关,因为如果你在示例中取消注释这一行:

updateRowNums();  // IF YOU COMMENT OUT THIS LINE...

没有引入额外/伪造数据。

谢谢,盖伦

你在谈论0,1和2吗? 因为您的函数updateRowNums会自动强制执行这些值。 如果要维护第一列,可以将updateRowNums更改为以下内容:

if (!$('#some_id').val()) { $('#some_id').val(x); }

(显然它不是最有效的代码,但如果没有值,它会重置字段。)

但是,如果这不是您所说的,那么我无法重现您的问题。 我正在使用Chrome 9.0.597.83,它在所有正确的位置保存了所有正确的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM