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.
Syntaxe
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é 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":
// 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);
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.