導航:updateCurrentEntry() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

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

規範

規範
HTML
# dom-navigation-updatecurrententry-dev

瀏覽器相容性

另見