History - 操纵浏览器会话历史
History
接口允许操纵浏览器的会话历史,即在当前页面加载的选项卡或框架中访问的页面。
属性
History
接口没有继承任何属性。
History.length
只读
返回一个 Integer
,表示会话历史记录的数量(包括当前加载的页面)。例如,对于在新选项卡中加载的页面,此属性返回 1
。
History.current
只读 已过时 Gecko 26
返回一个 DOMString
,表示会话历史记录的活动项的 URL。此属性从未可用于 Web 内容,并且不再受任何浏览器的支持。请改用 Location.href
。
History.next
只读 已过时 Gecko 26
返回一个 DOMString
,表示会话历史记录中下一个项目的 URL。此属性从未对 Web 内容可用,并且不受其他浏览器支持。
History.previous
只读 已过时 Gecko 26
返回一个 DOMString
,表示会话历史记录中上一项的 URL。此属性从未对 Web 内容可用,并且不受其他浏览器支持。
History.scrollRestoration
允许 Web 应用程序在历史记录导航中显式设置默认滚动恢复行为。此属性的值可以是 auto
或 manual
。
History.state
只读
返回一个 any
值,表示历史堆栈顶部状态。这是一种在不必等待 popstate
事件的情况下查看状态的方法。
方法
History
接口没有继承任何方法。
History.back()
转到会话历史记录中的上一页,与用户单击浏览器的 “后退” 按钮时的操作相同;它相当于 history.go(-1)
。
在会话历史记录中的第一页调用此方法没有任何效果,也不会引发异常。
Calling this method to go back beyond the first page in the session history has no effect and doesn't raise an exception.
History.forward()
转到会话历史记录中的下一页,与用户单击浏览器的 “前进” 按钮时的操作相同;它相当于 history.go(1)
。
在会话历史记录中的最新页面调用此方法没有任何效果,也不会引发异常。
History.go()
从会话历史记录加载页面,该页面由其与当前页面的相对位置标识,例如前一页为 -1
或下一页为 1
。如果指定了越界值(例如,在会话历史记录中没有先前访问过的页面时指定 -1
),则此方法将静默无效。在没有参数或值为 0
的情况下调用 go()
会重新加载当前页面。 Internet Explorer 允许您指定字符串而不是整数来转到历史记录列表中的特定 URL。
History.pushState()
将给定数据,标题和 URL(如果提供的话)推送到会话历史堆栈。您可以指定推送的数据为任何可以序列化的 JavaScript 对象。请注意,Firefox 目前忽略 title 参数;有关更多信息,请参阅操纵浏览器历史记录。
History.replaceState()
将给定数据,标题和 URL(如果提供的话)更新到会话历史堆栈上的最新条目。您可以指定推送的数据为任何可以序列化的 JavaScript 对象。请注意,Firefox 目前忽略 title 参数;有关更多信息,请参阅操纵浏览器历史记录。
规范
规范 | 状态 | 备注 |
---|---|---|
HTML Living Standard History 的定义 |
现行的标准 | 增加了 scrollRestoration 属性。 |
HTML5 History 的定义 |
推荐 | 初始定义。 |
Custom Scroll Restoration - History-based API History 的定义 |
编者的草案 | 增加了 scrollRestoration 属性。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
back | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
forward | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
go | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
length | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
pushState | 5 | 支持 | 41 | 10 | 11.5 | 5 |
replaceState | 5 | 支持 | 41 | 10 | 11.5 | 5 |
scrollRestoration | 46 | 不支持 | 46 | 不支持 | 33 | 支持 |
state | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 支持 | 未知 | 支持 | 支持 |
back | 支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
forward | 支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
go | 支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
length | 支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
pushState | 支持 | 支持 | 支持 | 支持 | 未知 | 支持 | 4.3 |
replaceState | 支持 | 支持 | 支持 | 支持 | 未知 | 支持 | 4.3 |
scrollRestoration | 不支持 | 46 | 不支持 | 支持 | 未知 | 支持 | 支持 |
state | 支持 | 支持 | 未知 | 支持 | 未知 | 未知 | 未知 |
1. 在 Firefox 2 到 5 中,使用 JSON 序列化传递的对象。从 Firefox 6 开始,使用结构化克隆算法对对象进行序列化。这允许安全地传递更多种类的对象。
相关链接
Window.history
属性返回当前会话的历史记录。