--- title: Client.postMessage() slug: Web/API/Client/postMessage tags: - API - Client - Méthode - Reference - Service Worker - ServiceWorker - postMessage translation_of: Web/API/Client/postMessage ---

{{SeeCompatTable}}{{APIRef("Client")}}

La méthode postMessage() de l'interface {{domxref("Client")}} permet à un service worker client d'envoyer un message à un {{domxref("ServiceWorker")}}.

Syntaxe

Client.postMessage(message[, transfer]);

Valeur de retour

Void.

Paramètres

message
Le message à envoyer au service worker.
transfer {{optional_inline}}
Un objet transferable, comme par exemple une référence à un port.

Exemples

Ce fragment de code est tiré de l'exemple d'envoi de message du service worker exemple d'envoi de message du service worker (voir exemple en ligne). Le code envoi un message et transfert le port vers le service worker qui pourra répondre via {{domxref("Client.postMessage()")}}.

Ce message est contenu dans une promesse qui se résolvera si la réponse ne contient pas d'erreur et qui échouera avec l'erreur.

function sendMessage(message) {
  return new Promise(function(resolve, reject) {
     var messageChannel = new MessageChannel();
     messageChannel.port1.onmessage = function(event) {
       if (event.data.error) {
         reject(event.data.error);
       } else {
         resolve(event.data);
       }
     };
    navigator.serviceWorker.controller.postMessage(message, [messageChannel.port2]);
  });
}

Spécifications

Spécification Statut Commentaire
{{SpecName('Service Workers', '#client-postmessage-method', 'postMessage()')}} {{Spec2('Service Workers')}} Définition initiale

Compatibilité des navigateurs

{{CompatibilityTable}}
Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support de base {{CompatChrome(45.0)}} [1] {{CompatVersionUnknown}}
{{ CompatGeckoDesktop("44.0") }}
{{CompatNo}} {{CompatUnknown}} {{CompatNo}}
Fonctionnalité Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Support de base {{CompatNo}} {{CompatNo}} {{CompatVersionUnknown}}
{{ CompatGeckoMobile("44.0") }}
{{CompatUnknown}} {{CompatNo}} {{CompatUnknown}} {{CompatNo}} {{CompatChrome(45.0)}} [1]