runtime.onConnect
Wird ausgelöst, wenn eine Verbindung mit einem Erweiterungsprozess oder einem Inhalts-Skript hergestellt wird.
Syntax
browser.runtime.onConnect.addListener(listener) browser.runtime.onConnect.removeListener(listener) browser.runtime.onConnect.hasListener(listener) Ereignisse haben drei Funktionen:
addListener(listener)-
Fügt diesem Ereignis einen Listener hinzu.
removeListener(listener)-
Beendet das Lauschen auf dieses Ereignis. Das Argument
listenerist der zu entfernende Listener. hasListener(listener)-
Prüft, ob ein
listenerfür dieses Ereignis registriert ist. Gibttruezurück, wenn er zuhört, andernfallsfalse.
addListener-Syntax
>Parameter
function-
Die aufgerufene Funktion, wenn dieses Ereignis auftritt. Der Funktion wird folgendes Argument übergeben:
port-
Ein
runtime.Port-Objekt, das das aktuelle Skript mit dem anderen Kontext verbindet, mit dem es sich verbindet.
Beispiele
Dieses Inhalts-Skript:
- stellt eine Verbindung zum Hintergrundskript her und speichert den
Portin einer VariablenmyPort - horcht auf Nachrichten auf
myPortund protokolliert sie - sendet Nachrichten an das Hintergrundskript, indem
myPortverwendet wird, wenn der Benutzer auf das Dokument klickt
// content-script.js let myPort = browser.runtime.connect({ name: "port-from-cs" }); myPort.postMessage({ greeting: "hello from content script" }); myPort.onMessage.addListener((m) => { console.log("In content script, received message from background script: "); console.log(m.greeting); }); document.body.addEventListener("click", () => { myPort.postMessage({ greeting: "they clicked the page!" }); }); Das entsprechende Hintergrundskript:
-
horcht auf Verbindungsversuche vom Inhalts-Skript
-
wenn es einen Verbindungsversuch empfängt:
- speichert es den Port in einer Variablen namens
portFromCS - sendet dem Inhalts-Skript eine Nachricht über den Port
- beginnt, auf Nachrichten auf dem Port zu horchen und protokolliert sie
- speichert es den Port in einer Variablen namens
-
sendet Nachrichten an das Inhalts-Skript, indem
portFromCSverwendet wird, wenn der Benutzer auf die Browser-Aktion der Erweiterung klickt
// background-script.js let portFromCS; function connected(p) { portFromCS = p; portFromCS.postMessage({ greeting: "hi there content script!" }); portFromCS.onMessage.addListener((m) => { console.log("In background script, received message from content script"); console.log(m.greeting); }); } browser.runtime.onConnect.addListener(connected); browser.browserAction.onClicked.addListener(() => { portFromCS.postMessage({ greeting: "they clicked the button!" }); }); Browser-Kompatibilität
Hinweis: Diese API basiert auf der chrome.runtime-API von Chromium. Diese Dokumentation ist abgeleitet von runtime.json im Chromium-Code.