webNavigation.onCreatedNavigationTarget
Wird ausgelöst, wenn ein neues Fenster oder ein neuer Tab in einem vorhandenen Fenster erstellt wird, um das Ziel einer Navigation zu hosten. Dieses Ereignis wird beispielsweise gesendet, wenn:
- der Benutzer einen Link in einem neuen Tab oder Fenster öffnet
- eine Webseite eine Ressource in einem neuen Tab oder Fenster mit
window.open()lädt (beachten Sie jedoch, dass das Ereignis nicht gesendet wird, wenn der Popup-Blocker des Browsers das Laden blockiert).
Das Ereignis wird nicht gesendet, wenn ein Tab oder Fenster ohne ein Navigationsziel erstellt wird (zum Beispiel, wenn der Benutzer einen neuen Tab durch Drücken von Strg+T öffnet).
Wenn dieses Ereignis ausgelöst wird, erfolgt dies vor webNavigation.onBeforeNavigate.
Hinweis:
Dieses Ereignis enthält keine documentId, frameId, parentDocumentId oder parentFrameId, da das Navigationsziel-Dokument nicht existiert, wenn das Ereignis ausgelöst wird. Weitere Informationen finden Sie im Artikel Mit documentId arbeiten.
Syntax
browser.webNavigation.onCreatedNavigationTarget.addListener(
listener, // function
filter // optional object
)
browser.webNavigation.onCreatedNavigationTarget.removeListener(listener)
browser.webNavigation.onCreatedNavigationTarget.hasListener(listener)
Ereignisse haben drei Funktionen:
addListener(listener)-
Fügt einen Listener zu diesem Ereignis hinzu.
removeListener(listener)-
Stoppt das Zuhören für dieses Ereignis. Das Argument
listenerist der zu entfernende Listener. hasListener(listener)-
Überprüft, ob
listenerfür dieses Ereignis registriert ist. Gibttruezurück, wenn es zuhört, andernfallsfalse.
addListener Syntax
>Parameter
listener-
Die Funktion, die aufgerufen wird, wenn dieses Ereignis eintritt. Der Funktion wird dieses Argument übergeben:
filterOptional-
object. Ein Objekt mit einer einzigen Eigenschafturl, die einArrayvonevents.UrlFilterObjekten ist. Wenn Sie diesen Parameter angeben, wird das Ereignis nur für Übergänge zu URLs ausgelöst, die mit mindestens einemUrlFilterim Array übereinstimmen. Wenn Sie diesen Parameter weglassen, wird das Ereignis für alle Übergänge ausgelöst. Beachten Sie, dassfilterin Firefox nicht unterstützt wird.
Zusätzliche Objekte
>details
sourceFrameId-
integer. ID des Frames, von dem die Navigation initiiert wurde.0zeigt an, dass der Frame der oberste Browsing-Kontext des Tabs ist und kein verschachteltes<iframe>. Ein positiver Wert zeigt an, dass die Navigation von einem verschachtelten iframe initiiert wurde. Frame-IDs sind eindeutig für einen bestimmten Tab und Prozess. sourceTabId-
integer. Die ID des Tabs, von dem die Navigation initiiert wurde. Zum Beispiel, wenn der Benutzer einen Link in einem neuen Tab öffnet, ist dies die ID des Tabs, der den Link enthält. tabId-
integer. Die ID des neu erstellten Tabs. timeStamp-
number. Die Zeit, zu der der Browser das Navigationziel erstellt hat, in Millisekunden seit der Epoche. url-
string. Die URL, die im neuen Tab geladen wird. windowId-
number. Die ID des Fensters, in dem der neue Tab erstellt wird. processIdOptional-
integer. Dieser Wert wird in modernen Browsern nicht gesetzt. Wenn er gesetzt war, repräsentierte er die ID des Prozesses, von dem die Navigation ausging.
Beispiele
Protokolliert die Ziel-URL, die Quell-Tab-ID und die Quell-Frame-ID für onCreatedNavigationTarget, wenn der Hostname des Ziels "example.com" enthält oder mit "developer" beginnt.
const filter = {
url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};
function logOnCreatedNavigationTarget(details) {
console.log(`onCreatedNavigationTarget: ${details.url}`);
console.log(details.sourceTabId);
console.log(details.sourceFrameId);
}
browser.webNavigation.onCreatedNavigationTarget.addListener(
logOnCreatedNavigationTarget,
filter,
);
Browser-Kompatibilität
Hinweis:
Diese API basiert auf Chromiums chrome.webNavigation API. Diese Dokumentation ist abgeleitet von web_navigation.json im Chromium-Code.