NavigationHistoryEntry

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格

导航 APINavigationHistoryEntry 接口表示单个导航历史记录条目。

这些对象通常通过 Navigation.currentEntry 属性和 Navigation.entries() 方法访问。

导航 API 仅公开在当前浏览上下文中创建的与当前页面同源的历史记录条目(例如,不是嵌入式 <iframe> 内的导航或跨源导航),为你的应用提供所有先前历史记录条目的准确列表。与使用旧版历史记录 API 相比,这使得遍历历史记录变得不那么脆弱。

EventTarget NavigationHistoryEntry

实例属性

从其父接口 EventTarget 继承属性。

id 只读 实验性

返回历史记录条目的 id。这是一个唯一的、由 UA 生成的值,始终代表特定的历史记录条目,可用于将其与外部资源(如存储缓存)关联。

index 只读 实验性

返回历史条目列表(即 Navigation.entries() 返回的列表)中历史条目的索引,如果该条目未出现在列表中,则返回 -1

key 只读 实验性

返回历史条目的 key。这是一个唯一的 UA 生成值,表示历史条目在条目列表中的位置,而不是条目本身。它用于通过 Navigation.traverseTo() 导航该特定位置。替换列表中条目的其他条目将重用该 key(即,如果 NavigateEvent.navigationTypereplace)。

sameDocument 只读 实验性

如果此历史记录条目与当前 Document 值属于同一个 document,则返回 true,否则返回 false

url 只读 实验性

返回此历史记录条目的绝对 URL 地址。如果该条目对应的文档与当前文档不同(例如 sameDocument 属性为 false),并且该文档是在将 Referrer-Policy 标头设置为 no-referrerorigin 的情况下获取的,则该属性返回 null

实例方法

从其父接口 EventTarget 继承方法。

getState() 实验性

返回与此历史记录条目相关的可用状态数据的克隆。

事件

dispose 实验性

当条目不再是历史条目列表的一部分时触发。

示例

js
function initHomeBtn() {
  // 获取第一个加载条目的键,以便用户可以随时返回该视图。
  const { key } = navigation.currentEntry;
  backToHomeButton.onclick = () => {
    navigation.traverseTo(key);
  };
}
// 拦截 navigate 事件(例如链接点击),并将其替换为单页导航
navigation.addEventListener("navigate", (event) => {
  event.intercept({
    async handler() {
      // 导航到不同的视图,但“主页”按钮始终有效
    },
  });
});

规范

Specification
HTML
# the-navigationhistoryentry-interface

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
NavigationHistoryEntry
Experimental
dispose event
Experimental
getState
Experimental
id
Experimental
index
Experimental
key
Experimental
sameDocument
Experimental
url
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

参见