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: Navigationsereignisse führen in der Regel dazu, dass der Browser Webanfragen stellt, aber die webRequest API befasst sich mit der detaillierteren Ansicht auf der HTTP-Ebene, während die webNavigation API sich mehr mit der Ansicht aus der Benutzeroberfläche des Browsers selbst beschäftigt.
Jedes Ereignis entspricht einer bestimmten Phase der Navigation. Die Reihenfolge der Ereignisse sieht wie folgt aus:
-
Der primäre Ablauf ist:
-
Zusätzlich:
wird voronCreatedNavigationTarget
onBeforeNavigate
ausgelöst, 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 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 Fragment-Identifier einer Seite geändert wird.onErrorOccurred
kann jederzeit 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 entweder der oberste Browsing-Kontext im Tab sein, oder ein verschachtelter Browsing-Kontext, der als iframe implementiert ist.
Jeder addListener()
-Aufruf eines Ereignisses akzeptiert einen optionalen Filterparameter. Mit dem Filter können ein oder mehrere URL-Muster spezifiziert werden, und das Ereignis wird dann nur für Navigationen ausgelöst, bei denen die Ziel-URL einem der Muster entspricht.
Der onCommitted
Ereignis-Listener erhält zwei zusätzliche Eigenschaften: einen TransitionType
, der den Grund für die Navigation angibt (z. B. 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 nutzen zu können, benötigen Sie die Berechtigung "webNavigation" permission.
Typen
-
Grund für die Navigation: z. B. der Benutzer hat auf einen Link geklickt, eine Adresse eingegeben oder ein Lesezeichen angeklickt.
-
Zusätzliche Informationen über eine Transition.
Funktionen
-
Ruft Informationen zu einem bestimmten Frame ab. Ein Frame kann der oberste Frame in einem Tab oder ein verschachteltes iframe sein und wird eindeutig durch eine Tab-ID und eine Frame-ID identifiziert.
-
Gibt, basierend auf einer Tab-ID, Informationen über alle darin enthaltenen Frames zurück.
Ereignisse
-
Wird ausgelöst, bevor der Browser ein Navigationsereignis startet.
-
Wird ausgelöst, wenn eine Navigation festgeschrieben wird. Mindestens ein Teil des neuen Dokuments wurde vom Server empfangen, und der Browser hat sich entschieden, zum neuen Dokument zu wechseln.
-
Wird ausgelöst, wenn das DOMContentLoaded-Ereignis auf 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 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 auszuführen: z. B. wenn der Benutzer einen Link in einem neuen Tab öffnet.
-
Wird ausgelöst, wenn der Fragment-Identifier einer Seite geändert wird.
-
Wird ausgelöst, wenn der Inhalt des Tabs durch ein anderes (meist vorher gerendertes) Tab ersetzt wird.
-
Wird ausgelöst, wenn die Seite die history API (2011) verwendet hat, um die in der Adressleiste angezeigte URL zu aktualisieren.
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | ||||||
---|---|---|---|---|---|---|---|
webNavigation | |||||||
TransitionQualifier | |||||||
TransitionQualifier.from_address_bar | |||||||
TransitionType | |||||||
TransitionType.auto_bookmark | |||||||
TransitionType.auto_subframe | |||||||
TransitionType.form_submit | |||||||
TransitionType.generated | |||||||
TransitionType.keyword | |||||||
TransitionType.keyword_generated | |||||||
TransitionType.link | |||||||
TransitionType.manual_subframe | |||||||
TransitionType.reload | |||||||
TransitionType.start_page | |||||||
TransitionType.typed | |||||||
getAllFrames | |||||||
getFrame | |||||||
onBeforeNavigate | |||||||
onCommitted | |||||||
onCommitted.transitionQualifiers | |||||||
onCommitted.transitionType | |||||||
onCompleted | |||||||
onCreatedNavigationTarget | |||||||
onCreatedNavigationTarget.sourceProcessId | |||||||
onCreatedNavigationTarget.windowId | |||||||
onDOMContentLoaded | |||||||
onErrorOccurred | |||||||
onErrorOccurred.error | |||||||
onHistoryStateUpdated | |||||||
onHistoryStateUpdated.transitionQualifiers | |||||||
onHistoryStateUpdated.transitionType | |||||||
onReferenceFragmentUpdated | |||||||
onReferenceFragmentUpdated.transitionQualifiers | |||||||
onReferenceFragmentUpdated.transitionType | |||||||
onTabReplaced |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support
- See implementation notes.
Beispielerweiterungen
Hinweis:
Diese API basiert auf der chrome.webNavigation
API von Chromium. Diese Dokumentation stammt aus web_navigation.json
im Chromium-Code.