--- title: History.replaceState() slug: Web/API/History/replaceState translation_of: Web/API/History/replaceState ---
{{APIRef("DOM")}}
replaceState()
方法使用state objects
, title
,和 URL
作为参数, 修改当前历史记录实体,如果你想更新当前的state对象或者当前历史实体的URL来响应用户的的动作的话这个方法将会非常有用。
history.replaceState(stateObj, title[, url]);
replaceState
方法的历史记录实体相关联.假设 http://mozilla.org/foo.html 执行下面的 JavaScript 代码:
var stateObj = { foo: "bar" };
history.pushState(stateObj, "", "bar.html");
上面这两行的解释可以在 "Example of pushState() method"这个章节找到。然后假设 http://mozilla.org/bar.html 执行下面的 JavaScript 代码:
history.replaceState(stateObj, "", "bar2.html");
这会让URL栏显示 http://mozilla.org/bar2.html, 但是不会刷新 bar2.html
页面 甚至不会检查bar2.html 是否存在
假设用户跳转到 http://www.microsoft.com, 然后点击返回按钮.这时, URL 栏将会显示 http://mozilla.org/bar2.html 页面. 如果用户此时点击返回按钮, URL栏将会显示 http://mozilla.org/foo.html 页面, 最终绕过了 bar.html 页面.
Specification | Status | Comment |
---|---|---|
{{SpecName("HTML WHATWG", "browsers.html#history", "History")}} | {{Spec2("HTML WHATWG")}} | No change from {{SpecName("HTML5 W3C")}}. |
{{SpecName("HTML5 W3C", "browsers.html#history", "History")}} | {{Spec2("HTML5 W3C")}} | Initial definition. |
{{Compat("api.History.replaceState")}}