Lorsque j'utilise l'écouteur d'événement jQuery pour gérer l'événement 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 que j'ai transmis des données à la fenêtre actuelle. Parce que si j'utilise "addEventListener", tout se passe bien!
Donc quel est le problème?
jQuery peut prétraiter la propriété data
de l'événement, et cette opération peut ne pas prendre en charge correctement l'événement message
(pour l'instant).
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.
});
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;
});