webNavigation
Fügen Sie Event-Listener für die verschiedenen Stadien einer Navigation hinzu. Eine Navigation besteht aus einem Rahmen im Browser, der von einer URL zu einer anderen wechselt, üblicherweise (aber nicht immer) als Reaktion auf eine Benutzeraktion wie das Klicken auf einen Link oder das Eingeben einer URL in die Adressleiste.
Im Vergleich zur webRequest
API: Navigationen führen normalerweise dazu, dass der Browser Webanfragen stellt, aber die webRequest
API bezieht sich auf die niedrigere Ebene der HTTP-Schicht, während die webNavigation
API sich mehr auf die Ansicht aus der Browser-Benutzeroberfläche selbst konzentriert.
Jedes Event entspricht einem bestimmten Stadium der Navigation. Die Abfolge der Events ist wie folgt:
-
Der primäre Fluss ist:
-
Zusätzlich:
onCreatedNavigationTarget
wird voronBeforeNavigate
ausgelöst, wenn der Browser ein neues Tab oder Fenster für die Navigation erstellen musste (zum Beispiel, weil der Benutzer einen Link in einem neuen Tab geöffnet hat).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 Fragmentbezeichner einer Seite geändert wird.onErrorOccurred
kann jederzeit ausgelöst werden.
Jede Navigation ist ein URL-Übergang in einem bestimmten Browser-Rahmen. Der Browser-Rahmen wird durch eine Tab-ID und eine Frame-ID identifiziert. Der Frame kann der oberste Browsing-Kontext im Tab sein oder ein verschachtelter Browsing-Kontext, der als iframe implementiert ist.
Jeder addListener()
-Aufruf eines Events akzeptiert einen optionalen Filterparameter. Der Filter wird ein oder mehrere URL-Muster festlegen, und das Event wird dann nur für Navigationen ausgelöst, bei denen die Ziel-URL einem dieser Muster entspricht.
Der onCommitted
Event-Listener übergibt zwei zusätzliche Eigenschaften: einen TransitionType
, der die Ursache der Navigation angibt (zum Beispiel, weil der Benutzer auf einen Link geklickt hat, oder weil er ein Lesezeichen ausgewählt hat), und einen TransitionQualifier
, der weitere Informationen zur Navigation liefert.
Um diese API zu verwenden, benötigen Sie die "webNavigation" Berechtigung.
Typen
-
Ursache der Navigation: zum Beispiel, der Benutzer klickte auf einen Link, gab eine Adresse ein oder klickte ein Lesezeichen.
-
Zusätzliche Informationen über eine Transition.
Funktionen
-
Ruft Informationen über einen bestimmten Frame ab. Ein Frame kann der oberste Frame in einem Tab sein oder ein verschachtelter iframe und wird eindeutig durch eine Tab-ID und eine Frame-ID identifiziert.
-
Gibt bei Angabe einer Tab-ID Informationen über alle darin enthaltenen Frames zurück.
Events
-
Wird ausgelöst, wenn der Browser im Begriff ist, ein Navigationsevent zu starten.
-
Wird ausgelöst, wenn eine Navigation festgeschrieben ist. 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 Ereignis in der Seite ausgelöst wird.
-
Wird ausgelöst, wenn ein Dokument, einschließlich der von ihm referenzierten Ressourcen, vollständig geladen und initialisiert ist. Dies entspricht dem DOM
load
Ereignis. -
Wird ausgelöst, wenn ein Fehler auftritt und die Navigation abgebrochen wird. Dies kann geschehen, wenn ein Netzwerkfehler auftrat oder der Benutzer die Navigation abgebrochen hat.
-
Wird ausgelöst, wenn ein neues Fenster oder ein neues Tab in einem vorhandenen 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 einer Seite geändert wird.
-
Wird ausgelöst, wenn der Inhalt des Tabs durch einen anderen (üblicherweise zuvor vorgerenderten) Tab ersetzt wird.
-
Wird ausgelöst, wenn die Seite die History API verwendet, um die URL in der Adressleiste des Browsers zu aktualisieren.
Browser-Kompatibilität
Beispielerweiterungen
Hinweis:
Diese API basiert auf Chromiums chrome.webNavigation
API. Diese Dokumentation leitet sich von web_navigation.json
im Chromium-Code ab.