runtime.onConnect
Lancé quand une connexion est établie avec un processus d'extension ou un script de contenu.
Syntaxe
browser.runtime.onConnect.addListener(listener);
browser.runtime.onConnect.removeListener(listener);
browser.runtime.onConnect.hasListener(listener);
Les événements ont trois fonctions :
addListener(callback)
-
Ajoute un écouteur à cet événement.
removeListener(listener)
-
Arrêtez d'écouter cet événement. L'argument de l'
écouteur
est l'écouteur à supprimer. hasListener(listener)
-
Vérifie si un
écouteur
est enregistré pour cet événement. Renvoietrue
s'il écoute, sinonfalse
.
Syntaxe addListener
Paramètres
fonction
-
Une fonction de rappel qui sera appelée lorsque cet événement se produira. La fonction recevra les arguments suivants:
port
-
Un objet
runtime.Port
connectant le script courant à l'autre contexte auquel il se connecte.
Compatibilité des navigateurs
BCD tables only load in the browser
Exemples
Ce script de contenu :
- Se connecte au script d'arrière-plan et stocke le
Port
dans une variablemyPort
- Ecoute les messages sur
myPort
, et les enregistre - Envoie des messages au script d'arrière-plan, en utilisant
myPort
, lorsque l'utilisateur clique sur le document
// content-script.js
var myPort = browser.runtime.connect({ name: "port-from-cs" });
myPort.postMessage({ greeting: "hello from content script" });
myPort.onMessage.addListener(function (m) {
console.log("In content script, received message from background script: ");
console.log(m.greeting);
});
document.body.addEventListener("click", function () {
myPort.postMessage({ greeting: "they clicked the page!" });
});
Le script d'arrière-plan correspondant :
-
Ecoute les tentatives de connexion de script de contenu
-
Quand il reçoit une tentative de connexion :
- Stocke le port dans une variable nommée
portFromCS
- Envoie un message au script de contenu en utilisant le port
- Commence à écouter les messages reçus sur le port et les enregistre
- Stocke le port dans une variable nommée
-
Envoie des messages au script de contenu, en utilisant
portFromCS
, quand l'utilisateur clique sur l'action du navigateur de l'extension
// background-script.js
var portFromCS;
function connected(p) {
portFromCS = p;
portFromCS.postMessage({ greeting: "hi there content script!" });
portFromCS.onMessage.addListener(function (m) {
console.log("In background script, received message from content script");
console.log(m.greeting);
});
}
browser.runtime.onConnect.addListener(connected);
browser.browserAction.onClicked.addListener(function () {
portFromCS.postMessage({ greeting: "they clicked the button!" });
});
Note :
Cette API est basée sur l'API Chromium chrome.runtime
. Cette documentation est dérivée de runtime.json
dans le code de Chromium code.
Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.