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 |
瀏覽器相容性
載入中…