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 |
浏览器兼容性
加载中…