导航:updateCurrentEntry() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

Navigation 接口的 updateCurrentEntry() 方法会更新 currentEntrystate;在状态更改独立于导航或重新加载的情况下使用。

语法

js
updateCurrentEntry(options)

参数

options

一个包含以下属性的选项对象

state

在导航完成后要存储在关联的 NavigationHistoryEntry 中的开发者定义的信息,可以通过 getState() 检索。这可以是任何数据类型。例如,您可能希望存储页面访问次数以用于分析,或者存储 UI 状态详细信息,以便可以显示用户上次离开时的视图。存储在 state 中的任何数据都必须是 结构化克隆 的。

返回值

无 (undefined)。

异常

DataCloneError DOMException

如果 state 参数包含的值不是结构化克隆的,则抛出此错误。

InvalidStateError DOMException

如果 Navigation.currentEntrynull,则会抛出此异常,即没有当前历史记录条目。例如,如果当前页面是 about:blank,则可能发生这种情况。

示例

您可以使用类似以下的代码来更新 <details> 元素的打开/关闭状态,以便在重新加载页面或从其他地方返回时能够恢复该状态。

js
detailsElem.addEventListener("toggle", () => {
  navigation.updateCurrentEntry({ state: { detailOpen: detailsElem.open } });
});

规范

规范
HTML
# dom-navigation-updatecurrententry-dev

浏览器兼容性

另见