NavigateEvent: navigationType-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 navigationType
-Eigenschaft des NavigateEvent
-Interfaces gibt den Typ der Navigation zurück — push
, reload
, replace
oder traverse
.
Wert
Ein enumerierter Wert, der den Typ der Navigation darstellt.
Die möglichen Werte sind:
push
: Eine neue Position wird angesteuert, wodurch ein neuer Eintrag in der Verlaufs-Liste hinzugefügt wird.reload
: DerNavigation.currentEntry
wird neu geladen.replace
: DerNavigation.currentEntry
wird durch einen neuen Verlaufs-Eintrag ersetzt. Dieser neue Eintrag wird denselbenkey
wiederverwenden, aber eine andereid
zugewiesen bekommen.traverse
: Der Browser navigiert von einem bestehenden Verlaufs-Eintrag zu einem anderen bestehenden Verlaufs-Eintrag.
Beispiele
Asynchrone Übergänge mit spezieller Vor-/Zurück-Navigation
Manchmal ist es wünschenswert, Vor-/Zurück-Navigationen speziell zu behandeln, z.B. durch die Wiederverwendung von zwischengespeicherten Ansichten, indem sie auf dem Bildschirm angezeigt werden. Dies kann durch folgende Verzweigung erreicht werden:
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({
async handler() {
if (myFramework.currentPage) {
await myFramework.currentPage.transitionOut();
}
let { key } = event.destination;
if (
event.navigationType === "traverse" &&
myFramework.previousPages.has(key)
) {
await myFramework.previousPages.get(key).transitionIn();
} else {
// This will probably result in myFramework storing
// the rendered page in myFramework.previousPages.
await myFramework.renderPage(event.destination);
}
},
});
});
Spezifikationen
Specification |
---|
HTML Standard # dom-navigateevent-navigationtype-dev |
Browser-Kompatibilität
BCD tables only load in the browser