webNavigation
Fügen Sie Ereignis-Listener für die verschiedenen Phasen einer Navigation hinzu. Eine Navigation besteht aus einem Frame im Browser, der von einer URL zu einer anderen übergeht, normalerweise (aber nicht immer) als Reaktion auf eine Benutzeraktion wie das Klicken auf einen Link oder das Eingeben einer URL in die Adressleiste.
Verglichen mit der webRequest
API: Navigationen führen normalerweise dazu, dass der Browser Webanfragen macht, aber die webRequest API befasst sich mit der unteren Ebene aus der Sicht der HTTP-Ebene, während die webNavigation API mehr mit der Sicht der Browser-UI selbst befasst ist.
Jedes Ereignis entspricht einem bestimmten Stadium der Navigation. Die Reihenfolge der Ereignisse sieht wie folgt aus:
-
Der primäre Fluss ist:
-
Zusätzlich:
onCreatedNavigationTarget
wird ausgelöst, bevoronBeforeNavigate
, wenn der Browser ein neues Tab oder Fenster für die Navigation erstellen muss (zum Beispiel, weil der Benutzer einen Link in einem neuen Tab öffnete).onHistoryStateUpdated
wird ausgelöst, wenn eine Seite die History API verwendet, um die in der Adressleiste des Browsers angezeigte URL zu aktualisieren.onReferenceFragmentUpdated
wird ausgelöst, wenn der Fragment-Bezeichner für eine Seite geändert wird.onErrorOccurred
kann zu jedem Zeitpunkt ausgelöst werden.
Jede Navigation ist ein URL-Übergang in einem bestimmten Browser-Frame. Der Browser-Frame wird durch eine Tab-ID und eine Frame-ID identifiziert. Der Frame kann der oberste Browsing-Kontext im Tab oder ein verschachtelter Browsing-Kontext sein, der als iframe implementiert ist.
Der addListener()
-Aufruf jedes Ereignisses akzeptiert einen optionalen Filterparameter. Der Filter legt ein oder mehrere URL-Muster fest, und das Ereignis wird dann nur für Navigationen ausgelöst, bei denen die Ziel-URL mit einem dieser Muster übereinstimmt.
Der onCommitted
-Ereignis-Listener erhält zwei zusätzliche Eigenschaften: einen TransitionType
, der die Ursache der Navigation angibt (zum Beispiel, weil der Benutzer auf einen Link geklickt hat oder ein Lesezeichen ausgewählt hat), und einen TransitionQualifier
, der weitere Informationen über die Navigation liefert.
Um diese API zu verwenden, benötigen Sie die "webNavigation" Berechtigung.
Typen
-
Ursache der Navigation: zum Beispiel hat der Benutzer auf einen Link geklickt, eine Adresse eingegeben oder ein Lesezeichen ausgewählt.
-
Zusätzliche Informationen über eine Transition.
Funktionen
-
Ruft Informationen über einen bestimmten Frame ab. Ein Frame kann der oberste Frame in einem Tab oder ein verschachtelter iframe sein und wird eindeutig durch eine Tab-ID und eine Frame-ID identifiziert.
-
Gibt eine Tab-ID an und ruft Informationen über alle enthaltenen Frames ab.
Ereignisse
-
Wird ausgelöst, wenn der Browser kurz davor steht, einen Navigationsevent zu starten.
-
Wird ausgelöst, wenn eine Navigation festgeschrieben wurde. Mindestens ein Teil des neuen Dokuments wurde vom Server empfangen und der Browser hat entschieden, zum neuen Dokument zu wechseln.
-
Wird ausgelöst, wenn das DOMContentLoaded-Event auf der Seite ausgelöst wird.
-
Wird ausgelöst, wenn ein Dokument, einschließlich der darin referenzierten Ressourcen, vollständig geladen und initialisiert ist. Dies entspricht dem DOM
load
-Event. -
Wird ausgelöst, wenn ein Fehler auftritt und die Navigation abgebrochen wird. Dies kann passieren, wenn entweder ein Netzwerkfehler aufgetreten ist oder der Benutzer die Navigation abgebrochen hat.
-
Wird ausgelöst, wenn ein neues Fenster oder ein neues Tab in einem bestehenden Fenster erstellt wird, um eine Navigation zu hosten: zum Beispiel, wenn der Benutzer einen Link in einem neuen Tab öffnet.
-
Wird ausgelöst, wenn der Fragmentbezeichner für eine Seite geändert wird.
-
Wird ausgelöst, wenn der Inhalt des Tabs durch einen anderen (normalerweise zuvor vorgerenderten) Tab ersetzt wird.
-
Wird ausgelöst, wenn die Seite die History API (2011) verwendet, um die in der Adressleiste des Browsers angezeigte URL zu aktualisieren.
Browser-Kompatibilität
Beispielerweiterungen
Hinweis:
Diese API basiert auf der chrome.webNavigation
API von Chromium. Diese Dokumentation ist aus web_navigation.json
im Chromium-Code abgeleitet.