NavigationHistoryEntry

可用性有限

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

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

NavigationHistoryEntry 介面是 Navigation API 的一部分,用於表示單個導航歷史條目。

這些物件通常可以透過 Navigation.currentEntry 屬性和 Navigation.entries() 方法訪問。

Navigation API 只會暴露當前瀏覽上下文(browsing context)中建立的、且與當前頁面同源(same origin)的歷史條目(例如,不會暴露嵌入式 <iframe> 中的導航,或跨域導航),從而為您的應用程式提供準確的先前歷史條目列表。這使得歷史記錄的遍歷比舊的 History API 更加穩定可靠。

EventTarget NavigationHistoryEntry

例項屬性

繼承其父級 EventTarget 的屬性。

id 只讀 實驗性

返回歷史條目的 id。這是一個由使用者代理(UA)生成的唯一值,始終代表一個特定的歷史條目,可用於將其與外部資源(如快取)關聯。

index 只讀 實驗性

返回歷史條目在歷史條目列表(即 Navigation.entries() 返回的列表)中的索引,如果該條目未出現在列表中,則返回 -1

key 只讀 實驗性

返回歷史條目的 key。這是一個由使用者代理(UA)生成的唯一值,代表歷史條目在條目列表中的槽位(slot),而不是條目本身。它用於透過 Navigation.traverseTo() 導航到該特定槽位。當其他條目替換該條目在列表中的位置時(即 NavigateEvent.navigationTypereplace 時),key 會被重新使用。

sameDocument 只讀 實驗性

如果此歷史條目與當前 Document 物件屬於同一個 document,則返回 true,否則返回 false

url 只讀 實驗性

返回此歷史條目的絕對 URL。如果該條目對應於與當前文件不同的文件(類似於 sameDocument 屬性為 false),並且該文件是使用 Referrer-Policy 頭部設定為 no-referrerorigin 來獲取的,則該屬性返回 null

例項方法

繼承其父級 EventTarget 的方法。

getState() 實驗性

返回與此歷史條目關聯的可用狀態的克隆。

事件

dispose 實驗性

當條目不再是歷史條目列表的一部分時觸發。

示例

js
function initHomeBtn() {
  // Get the key of the first loaded entry
  // so the user can always go back to this view.
  const { key } = navigation.currentEntry;
  backToHomeButton.onclick = () => {
    navigation.traverseTo(key);
  };
}
// Intercept navigate events, such as link clicks, and
// replace them with single-page navigations
navigation.addEventListener("navigate", (event) => {
  event.intercept({
    async handler() {
      // Navigate to a different view,
      // but the "home" button will always work.
    },
  });
});

規範

規範
HTML
# the-navigationhistoryentry-interface

瀏覽器相容性

另見