runtime.onMessageExternal

Utilisez cet événement pour écouter les messages d'une autre extension.

Pour envoyer un message qui sera reçu par le module d'écoute onMessageExternal, utilisez runtime.sendMessage(), en transmettant l'ID du destinataire dans le paramètre extensionId.

Avec le message lui-même, l'écouteur est transmis :

  • un objet sender donnant des détails sur l'expéditeur du message
  • une fonction sendResponse qu'elle peut utiliser pour renvoyer une réponse à l'expéditeur.

Cette API ne peut pas être utilisée dans un script de contenu.

Syntaxe

js
browser.runtime.onMessageExternal.addListener();
browser.runtime.onMessageExternal.removeListener(listener);
browser.runtime.onMessageExternal.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 listener est l'écouteur à supprimer.

hasListener(listener)

Vérifie si un listener est enregistré pour cet événement. Renvoie true s'il écoute, false sinon.

Syntaxe addListener

Paramètres

function

Une fonction de rappel qui sera appelée lorsque cet événement se produira. La fonction recevra les arguments suivants :

message

object. Le message lui-même. C'est un objet JSON-ifiable.

sender

Un objet runtime.MessageSender représentant l'expéditeur du message.

sendResponse

Une fonction à appeler, au plus une fois, pour envoyer une réponse au message. La fonction prend un seul argument, qui peut être n'importe quel objet JSON-ifiable. Cet argument est renvoyé à l'expéditeur du message.

Si vous avez plus d'un écouteur onMessageExternal dans le même document, un seul peut envoyer une réponse.

To send a response synchronously, call sendResponse before the listener function returns. To send a response asynchronously:

  • Soit garder une référence à l'argumen sendResponse et retourne true à partir de la fonction d'écouteur. Vous pourrez ensuite appeler sendResponse après le retour de la fonction d'écouteur..
  • ou retourne une Promise de la fonction d'écouteur et résoudre la promesse lorsque la réponse est prête.

Compatibilité des navigateurs

BCD tables only load in the browser

Exemples

Dans cet exemple, l'extension "blue@mozilla.org" envoie un message à l'extension "red@mozilla.org":

js
// sender: browser.runtime.id == "blue@mozilla.org"

// Send a message to the extension whose ID is "red@mozilla.org"
browser.runtime.sendMessage("red@mozilla.org", "my message");
js
// recipient: browser.runtime.id == "red@mozilla.org"

function handleMessage(message, sender) {
  // check that the message is from "blue@mozilla.org"
  if (sender.id === "blue@mozilla.org") {
    // process message
  }
}

browser.runtime.onMessageExternal.addListener(handleMessage);

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.