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

View in English Always switch to English

NavigateEvent:signal 属性

基线 2026
最近可用

自 January 2026 起,此特性已在最新浏览器中得到支持。但在较旧的设备或浏览器中可能无法运行。

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

NavigateEvent 接口的 signal 只读属性返回一个 AbortSignal,如果导航被取消(例如,用户按下浏览器的“停止”按钮,或者另一个导航启动并因此取消正在进行的导航),该信号将被中止。

AbortSignal 对象。

示例

这里的总体思路是,可以将 signal 属性传递给相关的 fetch() 操作,这样,如果取消导航,则可以安全地中止 fetch() 操作,避免在不再需要的 fetch 请求上浪费带宽。

js
navigation.addEventListener("navigate", (event) => {
  event.intercept({
    async handler() {
      // ...

      await fetch(`/img/some-image.jpg`, { signal: event.signal });

      // ...
    },
  });
});

备注:请参阅示例:下一个/上一个按钮获取更详细的示例。

规范

规范
HTML
# dom-navigateevent-signal-dev

浏览器兼容性

参见