我有一个< select>包含单个<选项>的标记元件:
<select id="someselect"> <option value="2">B</option> </select>
单个<选项>稍后使用jQuery替换.新的选项列表始终包含旧选项:
selected = $('#someselect').val(); $('#someselect').html('<option value="1">A</option><option value="2">B</option>').val(selected);
这按预期工作.但是,当从Google Chrome浏览器中的网页导航然后单击后退按钮时,会发生一些奇怪的事情. select标签返回到其初始状态(有意义),但是单个<选项>元素未被选中!
Chrome中此行为的原因是什么?
我创建了一个最小的工作示例:http://dl.dropbox.com/u/27566470/backdemo.html
最初只有一个<选项>.首先单击“单击”以替换选项(但保持选中“B”选项),然后单击“Google”导航,然后使用Chrome的后退按钮查看< select>标签只有一个未选中的选项.
编辑:澄清一下,我对如何解决这个问题不感兴趣.我很好奇为什么Chrome会像这样工作.使用后退按钮后提供原始(未修改的)DOM是有道理的,但为什么没有选择唯一的选择选项?
解决方法
要回答我自己的问题,它似乎是一个Chromium bug.我已经提交了一个目前已经确认和分类的错误:
http://code.google.com/p/chromium/issues/detail?id=125509 所以希望将来修复这个:)