Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Window : évènement message

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis août 2017.

L'évènement message est déclenché sur un objet Window lorsque la fenêtre reçoit un message, par exemple à partir d'un appel à Window.postMessage() depuis un autre contexte de navigation.

Cet évènement n'est pas annulable et ne se propage pas.

Syntaxe

Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou définissez une propriété de gestionnaire d'événements.

js
addEventListener("message", (event) => { })

onmessage = (event) => { }

Type d'évènement

Un objet MessageEvent. Hérite de Event.

Event MessageEvent

Propriétés de l'évènement

Cette interface hérite également des propriétés de son parent, Event.

MessageEvent.data Lecture seule

Les données envoyées par l'émetteur du message.

MessageEvent.origin Lecture seule

Une chaîne de caractères représentant l'origine de l'émetteur du message.

MessageEvent.lastEventId Lecture seule

Une chaîne de caractères représentant un identifiant unique pour l'évènement.

MessageEvent.source Lecture seule

Un objet MessageEventSource (qui peut être un WindowProxy, MessagePort, ou ServiceWorker) représentant l'émetteur du message.

MessageEvent.ports Lecture seule

Un tableau d'objets MessagePort représentant les ports associés au canal par lequel le message est envoyé (le cas échéant, par exemple, dans la messagerie de canal ou lors de l'envoi d'un message à un worker partagé).

Exemples

Supposons qu'un script envoie un message à un contexte de navigation différent, tel qu'un autre <iframe>, en utilisant un code comme celui-ci :

js
const targetFrame = window.top.frames[1];
const targetOrigin = "https://exemple.org";
const windowMessageButton = document.querySelector("#window-message");

windowMessageButton.addEventListener("click", () => {
  targetFrame.postMessage("bonjour", targetOrigin);
});

Le récepteur peut écouter le message en utilisant addEventListener() avec un code comme celui-ci :

js
window.addEventListener("message", (event) => {
  console.log(`Message reçu : ${event.data}`);
});

Alternativement l'écouteur peut utiliser la propriété du gestionnaire d'évènements onmessage :

js
window.onmessage = (event) => {
  console.log(`Message reçu : ${event.data}`);
};

Spécifications

Specification
HTML
# event-message
HTML
# handler-window-onmessage

Compatibilité des navigateurs

Voir aussi