Il semble que le point de la fenêtre.postMessage est de permettre une communication sûre entre windows/images hébergées sur des domaines différents, mais il ne fait pas semblent permettre que dans google Chrome.
Voici le scénario:
- Intégrer un <iframe> (avec un
src
sur le domaine B*) dans une page sur le domaine d'Un - Les <iframe> finit par être essentiellement une balise <script>, à la fin de son exécution...
- J'fenêtre d'appel.postMessage( some_data, page_on_A )
Les <iframe> est très certainement dans le contexte du domaine B, et j'ai confirmé que le javascript intégré dans ce <iframe> s'exécute correctement et appels postMessage
avec les valeurs correctes.
Je reçois ce message d'erreur dans google Chrome:
Parvenez pas à envoyer de message à Un. Le bénéficiaire a l'origine B.
Voici le code qui enregistre un message d'écouteur d'événement dans la page:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
J'ai aussi essayé de les appeler, window.postMessage(some_data, '*')
, mais tout ce qui n'est supprimer l'erreur.
Je suis juste à côté de l'essentiel, ici, est de fenêtre.postMessage(...) n'était pas fait pour cela? Ou suis-je viens de le faire horriblement mal?
*Type Mime text/html, il doit rester.