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
senderdonnant des détails sur l'expéditeur du message - une fonction
sendResponsequ'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
listenerest l'écouteur à supprimer. hasListener(listener)-
Vérifie si un
listenerest enregistré pour cet événement. Renvoietrues'il écoute,falsesinon.
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.MessageSenderrepré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
onMessageExternaldans le même document, un seul peut envoyer une réponse.To send a response synchronously, call
sendResponsebefore the listener function returns. To send a response asynchronously:- Soit garder une référence à l'argumen
sendResponseet retournetrueà partir de la fonction d'écouteur. Vous pourrez ensuite appelersendResponseaprès le retour de la fonction d'écouteur.. - ou retourne une
Promisede 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
Chargement…
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.