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é du navigateur
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
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!"});
});
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.