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

浏览器兼容性

BCD tables only load in the browser

参见