导航:updateCurrentEntry() 方法
updateCurrentEntry()
方法是 Navigation
接口的方法,用于更新 currentEntry
的 state
;用于状态更改独立于导航或重新加载的情况。
语法
js
updateCurrentEntry()
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 } });
});
规范
规范 |
---|
HTML 标准 # dom-navigation-updatecurrententry-dev |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 现代客户端路由:导航 API
- 导航 API 解释器
- Domenic Denicola 的 导航 API 实时演示