62 votes

jQuery ne prend pas en charge l'événement postmessage?

Lorsque j'utilise l'écouteur d'événements jQuery pour gérer les événements de message, comme ci-dessous:

 $(window).on('message', function(e) {
    var data = e.data; // data = undefined
});
 

les données ne sont pas définies! Je suis sûr d'avoir transmis des données à la fenêtre en cours. Parce que si j'utilise "addEventListener", tout se passe bien!

Donc quel est le problème?

107voto

Frédéric Hamidi Points 123646

jQuery est peut-être en train de prétraiter la propriété data événement et cette opération peut ne pas prendre en charge correctement l'événement message .

Essayez d’utiliser la propriété originalEvent pour récupérer vos données:

 $(window).on("message", function(e) {
    var data = e.originalEvent.data;  // Should work.
});
 

13voto

Tibor Points 21

Certains navigateurs utilisent l'événement "onmessage". Je suggère une petite amélioration à la réponse précédente pour une compatibilité accrue:

 $(window).on("message onmessage", function(e) {
    var data = e.originalEvent.data;
});
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X