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 应用程序在历史记录导航中显式设置默认滚动恢复行为。此属性的值可以是 automanual

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 属性。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 支持 支持 支持 支持 支持 支持
back 支持 未知 支持 未知 未知 未知
forward 支持 未知 支持 未知 未知 未知
go 支持 未知 支持 未知 未知 未知
length 支持 未知 支持 未知 未知 未知
pushState5 支持411011.55
replaceState5 支持411011.55
scrollRestoration46 不支持46 不支持33 支持
state 支持 未知 支持 未知 未知 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持 支持 支持 支持 未知 支持 支持
back 支持 支持 未知 支持 未知 未知 未知
forward 支持 支持 未知 支持 未知 未知 未知
go 支持 支持 未知 支持 未知 未知 未知
length 支持 支持 未知 支持 未知 未知 未知
pushState 支持 支持 支持 支持 未知 支持4.3
replaceState 支持 支持 支持 支持 未知 支持4.3
scrollRestoration 不支持46 不支持 支持 未知 支持 支持
state 支持 支持 未知 支持 未知 未知 未知

1. 在 Firefox 2 到 5 中,使用 JSON 序列化传递的对象。从 Firefox 6 开始,使用结构化克隆算法对对象进行序列化。这允许安全地传递更多种类的对象。

相关链接