runtime.onMessageExternal
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.
Syntax
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. Renvoietrue
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 retournetrue
à partir de la fonction d'écouteur. Vous pourrez ensuite appelersendResponse
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.
- Soit garder une référence à l'argumen
Compatibilité du navigateur
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Exemples
Dans cet exemple, l'extension "blue@mozilla.org" envoie un message à l'extension "red@mozilla.org":
// 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"
);
// 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);
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.