NavigateEvent: canIntercept-Eigenschaft
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Die schreibgeschützte Eigenschaft canIntercept
des NavigateEvent
-Interfaces gibt true
zurück, wenn die Navigation abgefangen und die URL umgeschrieben werden kann, oder false
andernfalls.
Es gibt mehrere Regeln dafür, wann eine Navigation abgefangen werden kann. Zum Beispiel:
- Sie können keine Cross-Origin-Navigationen abfangen.
- Sie können
http
- oderhttps
-URLs abfangen, wenn sich nur diepath
-,query
- undfragment
-Teile der neuen URL von der aktuellen URL unterscheiden. - Sie können
file
-URLs abfangen, wenn sich nur diequery
- undfragment
-Teile der neuen URL unterscheiden. - Bei anderen URL-Typen können Sie die Navigation abfangen, wenn sich nur der
fragment
-Teil unterscheidet.
Siehe die Spezifikation für eine genauere Erklärung, wann ein Dokument seine URL umgeschrieben haben kann, einschließlich einer Tabelle mit Beispielen.
Wert
Ein boolescher Wert—true
, wenn die Navigation abgefangen werden kann, false
, wenn nicht.
Beispiele
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);
}
},
});
});
Spezifikationen
Specification |
---|
HTML Standard # dom-navigateevent-canintercept-dev |
Browser-Kompatibilität
BCD tables only load in the browser