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. Renvoie true s'il écoute, sinon false.

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

ChromeEdgeFirefoxFirefox for AndroidOpera
Support simple26 Oui454815

Exemples

Ce script de contenu :

  • Se connecte au script d'arrière-plan et stocke le Port dans une variable myPort
  • 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
  • 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!"});
});

Example extensions

Remerciements :

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.

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : hellosct1
 Dernière mise à jour par : hellosct1,