Navigation:updateCurrentEntry() 方法

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

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 } });
});

规范

Specification
HTML Standard
# dom-navigation-updatecurrententry-dev

浏览器兼容性

BCD tables only load in the browser

参见