Estou tentando fazer um postMessage
exemplo trivial funcionar ...
- no IE10
- entre janelas / guias (vs. iframes)
- através das origens
Remova qualquer uma dessas condições e tudo funcionará bem :-)
Mas, pelo que posso dizer, entre as janelas postMessage
só parece funcionar no IE10 quando ambas as janelas compartilham uma origem. (Bem, na verdade - e estranhamente - o comportamento é um pouco mais permissivo do que isso: duas origens diferentes que compartilham um host parecem funcionar também).
Este é um bug documentado? Alguma solução alternativa ou outro conselho?
(Observação: esta pergunta aborda os problemas, mas sua resposta é sobre o IE8 e o IE9 - não sobre 10)
Mais detalhes + exemplo ...
demonstração da página inicial
<!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>
página de demonstração lançada
<!DOCTYPE html>
<html>
<script>
window.opener.postMessage("Ahoy!", "*");
</script>
</html>
Funciona em: http://jsbin.com/ahuzir/1 - porque ambas as páginas estão hospedadas na mesma origem (jsbin.com). Mas mova a segunda página para qualquer outro lugar e ela falhará no IE10.
window.parent.postMessage
no IE.