导航:updateCurrentEntry() 方法

可用性有限

此功能不是基线功能,因为它在一些使用最广泛的浏览器中无法正常工作。

实验性:这是一个实验性技术
在生产环境中使用此功能之前,请仔细查看浏览器兼容性表

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

语法

js
updateCurrentEntry()
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

浏览器兼容性

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

另请参阅