NavigateEvent:signal 属性
Baseline
2026
Newly available
Since January 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
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 });
// ...
},
});
});
备注:请参阅示例:下一个/上一个按钮获取更详细的示例。
规范
| Specification |
|---|
| HTML> # dom-navigateevent-signal-dev> |
浏览器兼容性
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示