Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
NavigateEvent
Baseline 2026Newly available
Since January 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
DasNavigateEvent Interface derNavigation API ist das Ereignisobjekt für dasnavigate Ereignis, das ausgelöst wird, wennjede Art von Navigation initiiert wird (dies schließt die Verwendung vonHistory API Funktionen wieHistory.go() ein).NavigateEvent bietet Zugriff auf Informationen über diese Navigation und ermöglicht es Entwicklern, den Navigationsvorgang abzufangen und zu steuern.
In diesem Artikel
Konstruktor
NavigateEvent()Erstellt eine neue Instanz des
NavigateEventObjekts.
Instanz-Eigenschaften
Erbt Eigenschaften von seinem Elternteil,Event.
canInterceptSchreibgeschütztGibt
truezurück, wenn die Navigation abgefangen werden kann, oderfalsesonst (z. B. kann eine Navigation über verschiedene Herkunftsgebiete nicht abgefangen werden).destinationSchreibgeschütztGibt ein
NavigationDestinationObjekt zurück, das das Ziel der Navigation repräsentiert.downloadRequestSchreibgeschütztGibt den Dateinamen der angeforderten Datei für den Download zurück, im Falle einer Download-Navigation (z. B. ein
<a>oder<area>Element mit einemdownloadAttribut), odernullsonst.formDataSchreibgeschütztGibt das
FormDataObjekt zurück, das die übermittelten Daten im Falle einerPOST-Formularübertragung repräsentiert, odernullsonst.hashChangeSchreibgeschütztGibt
truezurück, wenn es sich um eine Fragmentnavigation handelt (d.h. zu einem Fragmentbezeichner im selben Dokument), oderfalsesonst.hasUAVisualTransitionSchreibgeschütztGibt
truezurück, wenn der Benutzeragent eine visuelle Übergangsnavigation durchgeführt hat, bevor dieses Ereignis ausgelöst wurde, oderfalsesonst.infoSchreibgeschütztGibt die
info-Datendaten zurück, die durch den initiierenden Navigationsvorgang übermittelt wurden (z. B.Navigation.back()oderNavigation.navigate()), oderundefined, wenn keineinfo-Daten übermittelt wurden.navigationTypeSchreibgeschütztGibt den Typ der Navigation zurück —
push,reload,replaceodertraverse.signalSchreibgeschütztGibt ein
AbortSignalzurück, das abgebrochen wird, wenn die Navigation abgebrochen wird (z. B. durch Drücken der "Stop"-Taste des Browsers oder durch Beginn einer neuen Navigation, die die laufende Navigation abbricht).sourceElementSchreibgeschütztWenn die Navigation durch ein Element initiiert wurde (zum Beispiel durch Klicken auf einen Link), wird ein
ElementObjekt zurückgegeben, das das auslösende Element darstellt.userInitiatedSchreibgeschütztGibt
truezurück, wenn die Navigation vom Benutzer initiiert wurde (z. B. durch Klicken auf einen Link, Absenden eines Formulars oder Drücken der "Zurück"/"Vorwärts"-Tasten des Browsers), oderfalsesonst.
Instanz-Methoden
Erbt Methoden von seinem Elternteil,Event.
intercept()Fängt diese Navigation ab, indem sie in eine gleiche Dokumentnavigation zur
destinationURL umgewandelt wird. Es können Handler-Funktionen übergeben werden, die definieren, wie das Navigationsverhalten aussehen soll, sowiefocusResetundscrollOptionen, um das Standardfokus- und -scrollverhalten des Browsers nach Belieben ein- oder auszuschalten.scroll()Kann aufgerufen werden, um das browsergesteuerte Scrollverhalten zu manuell auszulösen, das als Reaktion auf die Navigation auftritt, wenn Sie möchten, dass es passiert, bevor der Navigationsvorgang abgeschlossen ist.
Beispiele
>Handhabung einer Navigation mitintercept()
navigation.addEventListener("navigate", (event) => { // Exit early if this navigation shouldn't be intercepted, // e.g. if the navigation is cross-origin, or a download request if (shouldNotIntercept(event)) return; const url = new URL(event.destination.url); if (url.pathname.startsWith("/articles/")) { event.intercept({ async handler() { // The URL has already changed, so show a placeholder while // fetching the new content, such as a spinner or loading page renderArticlePagePlaceholder(); // Fetch the new content and display when ready const articleContent = await getArticleContent(url.pathname); renderArticlePage(articleContent); }, }); }});Hinweis:Bevor die Navigation API verfügbar war, musste man für eine ähnliche Funktionalität alle Klickereignisse auf Links überwachen,e.preventDefault() ausführen, den entsprechendenHistory.pushState() Aufruf durchführen und dann die Seitenansicht basierend auf der neuen URL einrichten. Und dies würde nicht alle Navigationen behandeln — nur Benutzer-initiierten Linkklicks.
Handhabung des Scrollens mitscroll()
In diesem Beispiel der Abfangung einer Navigation beginnt diehandler() Funktion damit, einige Artikelinhalte abzurufen und darzustellen, lädt aber danach noch sekundäre Inhalte nach. Es ist sinnvoll, die Seite zum Hauptartikelinhalt zu scrollen, sobald dieser verfügbar ist, sodass der Benutzer damit interagieren kann, anstatt zu warten, bis auch die sekundären Inhalte dargestellt sind. Um dies zu erreichen, haben wir einenscroll() Aufruf zwischen den beiden eingefügt.
navigation.addEventListener("navigate", (event) => { if (shouldNotIntercept(event)) return; const url = new URL(event.destination.url); if (url.pathname.startsWith("/articles/")) { event.intercept({ async handler() { const articleContent = await getArticleContent(url.pathname); renderArticlePage(articleContent); event.scroll(); const secondaryContent = await getSecondaryContent(url.pathname); addSecondaryContent(secondaryContent); }, }); }});Spezifikationen
| Specification |
|---|
| HTML> # the-navigateevent-interface> |