NavigateEvent: canIntercept 属性
NavigateEvent 接口的只读属性 canIntercept 返回 true,如果导航可以被拦截并重写其 URL,否则返回 false。
关于导航何时可以被拦截有一些规则。例如:
- 您不能拦截跨源导航。
- 如果新 URL 的
path、query和fragment部分与当前 URL 不同,您可以拦截http或httpsURL。 - 如果新 URL 的
query和fragment部分不同,您可以拦截fileURL。 - 对于其他 URL 类型,如果只有
fragment部分不同,您可以拦截导航。
有关 文档何时可以重写其 URL 的更多解释,请参阅规范,其中包含一个示例表格。
值
一个布尔值——如果导航可以被拦截,则为 true;如果不能,则为 false。
示例
js
navigation.addEventListener("navigate", (event) => {
// Some navigations, e.g. cross-origin navigations, we
// cannot intercept. Let the browser handle those normally.
if (!event.canIntercept) {
return;
}
// Don't intercept fragment navigations or downloads.
if (event.hashChange || event.downloadRequest !== null) {
return;
}
event.intercept({
handler() {
if (event.formData) {
processFormDataAndUpdateUI(event.formData, event.signal);
} else {
doSinglePageAppNav(event.destination, event.signal);
}
},
});
});
规范
| 规范 |
|---|
| HTML # dom-navigateevent-canintercept-dev |
浏览器兼容性
加载中…