在点击javascript:history.go(-1)按钮</select>后填充实时<select>元素

时间:2014-08-02 20:59:48

标签: javascript html ajax jquery

我一直在努力解决问题。

我有一个元素具有以下默认状态:

<select name="model"></select>

有一个实时事件被挂钩,用上面的选项填充上面的元素:

<select name="model">
    <option value=""></option>
    <option value="Gemini">Gemini</option>
    <option value="Piazza">Piazza</option>
    <option value="Pickup">Pickup</option>
</select>

之后有一个SerializeObject函数,它将表单key-val对转换为json并将其发送给PHP控制器。

之后,结果将显示在带有ajax的页面上。 当用户点击结果时,他被发送到详细页面,顶部有一个“BACK”按钮。这是后退按钮:

<a href="javascript:history.go(-1);">Back</a>

当用户点击它时,他会转到上一个结果页面。每个选择元素,但“模型”元素正确填充预期数据。我假设原因在于其内容是使用ajax请求和.html()覆盖生成的。

我进行了跨浏览器检查:无法在Chrome 36上运行,无法在IE 9上运行,并且在Firefox 30上运行良好。

忘记提及:我已激活header("Cache-control: private");

我希望有人能找到解决方案。提前谢谢!

1 个答案:

答案 0 :(得分:0)

听起来您的当前实现会因浏览器/版本而异。我使用history.js之类的东西来简化这一过程。

填充select元素时,将您使用的数据保存到当前历史状态对象中。然后,当浏览器状态发生变化时,请从当前状态为“历史状态”的数据中重新加载选项。在新的指数。