J'essaie de faire fonctionner un postMessage
exemple trivial ...
- dans IE10
- entre les fenêtres / onglets (par rapport aux iframes)
- à travers les origines
Supprimez l'une de ces conditions et les choses fonctionnent bien :-)
Mais pour autant que je sache, entre les fenêtres postMessage
ne semble fonctionner dans IE10 que lorsque les deux fenêtres partagent une origine. (Eh bien, en fait - et bizarrement - le comportement est légèrement plus permissif que cela: deux origines différentes qui partagent un hôte semblent également fonctionner).
Est-ce un bogue documenté? Des solutions de contournement ou d'autres conseils?
(Remarque: cette question touche aux problèmes, mais sa réponse concerne IE8 et IE9 - pas 10)
Plus de détails + exemple ...
démo de la page du lanceur
<!DOCTYPE html>
<html>
<script>
window.addEventListener("message", function(e){
console.log("Received message: ", e);
}, false);
</script>
<button onclick="window.open('http://jsbin.com/ameguj/1');">
Open new window
</button>
</html>
Démo de la page lancée
<!DOCTYPE html>
<html>
<script>
window.opener.postMessage("Ahoy!", "*");
</script>
</html>
Cela fonctionne à: http://jsbin.com/ahuzir/1 - car les deux pages sont hébergées à la même origine (jsbin.com). Mais déplacez la deuxième page n'importe où ailleurs, et cela échoue dans IE10.