runtime.onConnect

Lancé quand une connexion est établie avec un processus d'extension ou un script de contenu.

Syntaxe

js
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é 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 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
js
// 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

js
// 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.