postMessage entre janelas de domínio cruzado não funciona no IE10 (funciona para quadros)
Eu segui esse tutorialhttp://davidwalsh.name/window-postmessagee criei scripts de mensagens entre domínios que funcionam no Chrome e no Firefox, mas não no IE 10. Alguém poderia me dar alguns cliques sobre como modificá-lo para o IE 8+?
Em um servidor (por exemplo: 192.168.15.223) - receptor
<script>
//listener
window.addEventListener('message',function(event) {
if(event.origin !== 'http://120.0.0.211') return;
document.getElementById('cc').innerHTML = event.data;
},false);
window.attachEvent('onmessage',function(event) {
if(event.origin !== 'http://120.0.0.211') return;
document.getElementById('cc').innerHTML = event.data;
},false);
</script>
<p>At 192.18.15.223 server</p>
<div id='cc'>Nothing received yet</div>
Em outro servidor (por exemplo: 120.0.0.211) - remetente
<script>
//create popup window
var domain = 'http://192.18.15.223';
var myPopup = window.open(domain + '/receiver','myWindow','width=400,height=200');
//message sender
function popup(){
var message = 'A message sent from 120.0.0.211:';
myPopup.postMessage(message,domain); //send the message and target URI
}
</script>
<div id="bb">At 120.0.0.211 server</div>
<button type="button" onclick="popup()">send the message!</button>
Acima scripts funcionam perfeitamente no Chrome e Firefox, a janela aparece e mensagem pode ser recebida, no entanto, no IE (8 +), só aparece a janela, mas a mensagem não é recebida (ou pode ser não pode enviar).
Meu principal objetivo é fazer com que dois domínios enviem e recebam dados simples (textos, fotos únicas, etc.) e não incluam muita alteração no back-end. Então webservice não é considerado.
Qualquer ajuda será apreciada!
Aqui estão alguns links que podem ser úteis para investigar os problemas.
Esse post sugere usar attachEvent no IE, o que eu já fiz nos códigos acima:addEventListener no Internet Explorer
Este documento oficial da Microsoft mostra que o IE 8+ deve suportar addEventListener:http://msdn.microsoft.com/en-us/library/ie/cc197057(v=vs.85).aspx
Isso recomenda usar o Jquery bind () para substituir o addEventListener:Equivalente a jQuery do método addEventListener do JavaScript