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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
onMessageExternal
Respond with Promise

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Has more compatibility info.

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.