添加到浏览器历史记录而不重新加载页面

时间:2012-05-10 20:10:49

标签: javascript url browser back browser-history

基本上,我有一个包含表单的页面。当用户提交该表单时,将调用Javscript函数并动态地向用户显示新表单。

此时,我希望用户能够点击浏览器的后退按钮并返回到第一个表单。这可能吗?


感谢您的快速回复,但我无法让pushState工作。单击后退按钮后,HTML仍显示“第二种形式”。

以下是我用来测试它的代码:

<script>
function newPage(){
    history.pushState({state:1}, "State 1", "?state=1");
    document.getElementById('formBox').innerHTML="second form";
}
</script>


<input type="button" onclick="newPage();" value="forward" />
<div id='formBox'>first form</div>

2 个答案:

答案 0 :(得分:24)

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

相关link to the docs

答案 1 :(得分:14)

我使用History.js完成了HTML5历史/状态API的类似行为,如下所述:

  

为所有HTML5浏览器提供交叉兼容的体验(他们都是   实现HTML5历史API有点不同导致   不同的行为,有时是错误 - History.js解决了这个问题   确保体验符合预期/相同/伟大   HTML5浏览器)

示例:

History.pushState({state:1}, "State 1", "?state=1");