Navigation:updateCurrentEntry() 方法
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Navigation
接口的 updateCurrentEntry()
方法更新 currentEntry
的 state
;用于状态改变且与导航或重新加载无关的情况。
语法
js
updateCurrentEntry(options)
参数
options
-
包含以下属性的选项对象:
state
-
导航完成后,开发者定义的信息将存储在关联的
NavigationHistoryEntry
中,可通过getState()
检索。这可以是任何数据类型。例如,你可能希望存储页面访问次数以用于分析目的,或者存储 UI 状态详细信息,以便视图可以与用户上次离开时完全相同地显示。存储在state
中的任何数据都必须可结构化克隆。
返回值
无(undefined
)。
异常
DataCloneError
DOMException
-
如果
state
参数中包含不可结构化克隆的值,则抛出此异常。 InvalidStateError
DOMException
-
如果
Navigation.currentEntry
为null
,即没有当前历史记录条目,则抛出此异常。例如,如果当前页面为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
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示