Navigation:updateCurrentEntry() 方法
Baseline
2026
Newly available
Since January 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Navigation 接口的 updateCurrentEntry() 方法更新 currentEntry 的 state;用于状态改变且与导航或重新加载无关的情况。
语法
js
updateCurrentEntry(options)
参数
options-
包含以下属性的选项对象:
state-
导航完成后,开发者定义的信息将存储在关联的
NavigationHistoryEntry中,可通过getState()检索。这可以是任何数据类型。例如,你可能希望存储页面访问次数以用于分析目的,或者存储 UI 状态详细信息,以便视图可以与用户上次离开时完全相同地显示。存储在state中的任何数据都必须可结构化克隆。
返回值
无(undefined)。
异常
DataCloneErrorDOMException-
如果
state参数中包含不可结构化克隆的值,则抛出此异常。 InvalidStateErrorDOMException-
如果
Navigation.currentEntry为null,即没有当前历史记录条目,则抛出此异常。例如,如果当前页面为about:blank,则可能会发生这种情况。
示例
你可以使用类似下面的方法更新 <details> 元素的打开/关闭状态,以便在重新加载页面或从其他地方导航回来时可以恢复状态。
js
detailsElem.addEventListener("toggle", () => {
navigation.updateCurrentEntry({ state: { detailOpen: detailsElem.open } });
});
规范
| Specification |
|---|
| HTML> # dom-navigation-updatecurrententry-dev> |
浏览器兼容性
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示