7

我在 Safari 和 Chrome 中遇到了这个奇怪的问题(适用于 Firefox 和 IE)。

  1. 我从这个复选框列表开始,它选中了第一个项目“A”,未选中项目“B”和“C”
  2. 然后我导航到另一个页面,该页面对复选框列表中出现的项目进行排序
  3. 我更改了列表中项目的顺序,所以它现在变为“B”、“A”、“C”
  4. 我按下后退按钮
  5. 该页面从服务器重新获取(我禁用了缓存),我检查了从服务器发送的响应,并且仍然检查了项目“A”并且不再是列表中的第一项。
  6. !!!奇怪的行为!!! 该页面已以新顺序“B”、“A”、“C”加载到浏览器中,但未选中“A”,而是选中了第一项“B”。

不知何故,检查项的位置似乎已通过按后退按钮恢复,并且从服务器发送的表单数据已被丢弃。

当我刷新页面时,顺序是“B”、“A”、“C”,现在检查了“A”项,一切看起来都很好。

在这两种情况下,页面都将 IsPostBack 设置为 false。

这是网络工具包中的错误吗?

试过了,清除缓存,进入隐私浏览模式,清除历史记录。还是一样的行为。

4

2 回答 2

4

Webkit “恢复”表单数据时,我们遇到了类似的问题,即使页面状态同时发生了变化。

类似的帖子Safari 和 Chrome 后退按钮更改隐藏并在表单中提交值给了我们一个很好的提示。通过添加autocomplete="off"到页面上的所有表单,我们可以解决这个问题。

于 2012-01-10T13:45:28.473 回答
0

看这个例子:

http://jsfiddle.net/eGutT/9/

这也发生在我身上。这似乎是一个非常基本的缺陷,因为用例非常简单,而且很可能很常见。我已经在不同项目的两个地方遇到了这个问题。如果禁用会话实际上可以避免此问题,则它不是真正的解决方案,因为大多数客户甚至不知道此选项或关心此选项。

于 2011-01-28T17:45:01.857 回答