NavigationHistoryEntry
NavigationHistoryEntry 介面是 Navigation API 的一部分,用於表示單個導航歷史條目。
這些物件通常可以透過 Navigation.currentEntry 屬性和 Navigation.entries() 方法訪問。
Navigation API 只會暴露當前瀏覽上下文(browsing context)中建立的、且與當前頁面同源(same origin)的歷史條目(例如,不會暴露嵌入式 <iframe> 中的導航,或跨域導航),從而為您的應用程式提供準確的先前歷史條目列表。這使得歷史記錄的遍歷比舊的 History API 更加穩定可靠。
例項屬性
繼承其父級 EventTarget 的屬性。
id只讀 實驗性-
返回歷史條目的
id。這是一個由使用者代理(UA)生成的唯一值,始終代表一個特定的歷史條目,可用於將其與外部資源(如快取)關聯。 index只讀 實驗性-
返回歷史條目在歷史條目列表(即
Navigation.entries()返回的列表)中的索引,如果該條目未出現在列表中,則返回-1。 key只讀 實驗性-
返回歷史條目的
key。這是一個由使用者代理(UA)生成的唯一值,代表歷史條目在條目列表中的槽位(slot),而不是條目本身。它用於透過Navigation.traverseTo()導航到該特定槽位。當其他條目替換該條目在列表中的位置時(即NavigateEvent.navigationType為replace時),key會被重新使用。 sameDocument只讀 實驗性-
如果此歷史條目與當前
Document物件屬於同一個document,則返回true,否則返回false。 url只讀 實驗性-
返回此歷史條目的絕對 URL。如果該條目對應於與當前文件不同的文件(類似於
sameDocument屬性為false),並且該文件是使用Referrer-Policy頭部設定為no-referrer或origin來獲取的,則該屬性返回null。
例項方法
繼承其父級 EventTarget 的方法。
getState()實驗性-
返回與此歷史條目關聯的可用狀態的克隆。
事件
dispose實驗性-
當條目不再是歷史條目列表的一部分時觸發。
示例
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 |
瀏覽器相容性
載入中…