我有一个<select>
包含单个<option>
元素的标签:
<select id="someselect">
<option value="2">B</option>
</select>
单曲<option>
后来被 jQuery 取代。新的选项列表始终包含旧选项:
selected = $('#someselect').val();
$('#someselect').html('<option value="1">A</option><option value="2">B</option>').val(selected);
这按预期工作。然而,当在谷歌浏览器中离开网页然后点击后退按钮时,会发生一些奇怪的事情。选择标签回到了它的初始状态(有意义),但是单个<option>
元素没有被选中!
Chrome 中这种行为的原因是什么?
我创建了一个最小的工作示例:http
://dl.dropbox.com/u/27566470/backdemo.html
最初只有一个<option>
. 首先点击“点击”替换选项(但保持选择“B”选项),然后点击“谷歌”导航离开,然后使用 Chrome 的后退按钮查看<select>
只有一个选项的标签未选中的。
编辑:澄清一下,我对如何解决这个问题不感兴趣。我很好奇为什么 Chrome 会这样工作。使用后退按钮后提供原始(未修改的)DOM 是有道理的,但为什么没有选择唯一的选择选项?