此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

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

浏览器兼容性

参见