历史记录

History 接口是 历史记录 API 的一部分,允许操作浏览器会话历史记录,也就是当前页面加载所在的选项卡或框架中访问过的页面。

只有一个 history 实例(它是单例),可以通过全局对象 history 访问。

注意:此接口仅在主线程(Window)上可用。无法在 WorkerWorklet 上下文中访问它。

实例属性

History 接口不继承任何属性。

length 只读

返回一个整数,表示会话历史记录中元素的数量,包括当前加载的页面。例如,对于在新选项卡中加载的页面,此属性返回1

scrollRestoration

允许 Web 应用程序在历史记录导航时显式设置默认的滚动恢复行为。此属性可以是automanual

state 只读

返回一个任意值,表示历史记录栈顶部的状态。这是一种查看状态的方法,无需等待 popstate 事件。

实例方法

History 接口不继承任何方法。

back()

此异步方法转到会话历史记录中的上一页,与用户点击浏览器的后退按钮时的操作相同。相当于 history.go(-1)

调用此方法返回到会话历史记录中的第一页之前,不会产生任何效果,也不会引发异常。

forward()

此异步方法转到会话历史记录中的下一页,与用户点击浏览器的前进按钮时的操作相同;这等效于 history.go(1)

调用此方法前进到会话历史记录中最新的页面之后,不会产生任何效果,也不会引发异常。

go()

异步加载会话历史记录中的一个页面,由其相对于当前页面的相对位置标识,例如-1表示上一页,1表示下一页。如果指定了超出范围的值(例如,当会话历史记录中没有先前访问的页面时指定-1),则此方法会静默地不产生任何效果。调用不带参数或值为0go()将重新加载当前页面。

pushState()

将给定的数据推送到会话历史记录栈中,并使用指定的标题(以及,如果提供,URL)。DOM 将数据视为不透明;您可以指定任何可以序列化的 JavaScript 对象。请注意,除了 Safari 之外的所有浏览器当前都忽略标题参数。有关更多信息,请参阅 使用历史记录 API

replaceState()

更新历史记录栈中最新的条目,使其具有指定的数据、标题以及(如果提供)URL。DOM 将数据视为不透明;您可以指定任何可以序列化的 JavaScript 对象。请注意,除了 Safari 之外的所有浏览器当前都忽略标题参数。有关更多信息,请参阅 使用历史记录 API

规范

规范
HTML 标准
# the-history-interface

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅