History.replaceState() - Web API 接口参考 编辑
replaceState()
方法使用state objects
, title
,和 URL
作为参数, 修改当前历史记录实体,如果你想更新当前的state对象或者当前历史实体的URL来响应用户的的动作的话这个方法将会非常有用。
语法
history.replaceState(stateObj, title[, url]);
参数
- stateObj
- 状态对象是一个JavaScript对象,它与传递给
replaceState
方法的历史记录实体相关联. - title
- 大部分浏览器忽略这个参数, 将来可能有用. 在此处传递空字符串应该可以防止将来对方法的更改。或者,您可以为该状态传递简短标题
- url 可选
- 历史记录实体的URL. 新的URL跟当前的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 |
---|---|---|
HTML Living Standard History | Living Standard | No change from HTML5. |
HTML5 History | Recommendation | Initial definition. |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论