NavigateEvent:canIntercept 属性
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 接口的 canIntercept 只读属性在可以拦截导航并重写其 URL 时返回 true,否则返回 false。
关于何时可以拦截导航,有几条规则。例如:
- 你不能拦截跨源导航。
- 对于
http或httpsURL,仅当新 URL 的path、query和fragment部分与当前 URL 不同时可以拦截。 - 对于
fileURL,仅当新 URL 的query和fragment部分不同时可以拦截。 - 对于其他 URL 类型,仅当
fragment部分不同时可以拦截导航。
请参阅规范以获取有关何时可以重写文档的 URL 的更多解释,其中包括示例表格。
值
布尔值——如果可以拦截导航则为 true,否则为 false。
示例
js
navigation.addEventListener("navigate", (event) => {
// 有些导航,例如跨源导航,我们无法拦截。让浏览器正常处理这些导航。
if (!event.canIntercept) {
return;
}
// 不要拦截片段导航或下载。
if (event.hashChange || event.downloadRequest !== null) {
return;
}
event.intercept({
handler() {
if (event.formData) {
processFormDataAndUpdateUI(event.formData, event.signal);
} else {
doSinglePageAppNav(event.destination, event.signal);
}
},
});
});
规范
| Specification |
|---|
| HTML> # dom-navigateevent-canintercept-dev> |
浏览器兼容性
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示