--- title: runtime.onConnect slug: Mozilla/Add-ons/WebExtensions/API/runtime/onConnect tags: - API - Add-ons - Event - Extensions - Non-standard - Reference - WebExtensions - onconnect - runtime translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/onConnect ---
{{AddonSidebar()}}

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 {{WebExtAPIRef('runtime.Port')}} connectant le script courant à l'autre contexte auquel il se connecte.

Compatibilité du navigateur

{{Compat("webextensions.api.runtime.onConnect")}}

Exemples

Ce script de contenu :

// 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 :

// 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!"});
});

{{WebExtExamples}}

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.