postMessage между междоменными окнами не работает в IE10 (работает для фреймов)
Я следовал этому урокуhttp://davidwalsh.name/window-postmessageи создал междоменные сценарии обмена сообщениями, которые работают в Chrome и Firefox, но не в IE 10. Может ли кто-нибудь дать мне несколько советов о том, как изменить его для IE 8+?
На одном сервере (например: 192.168.15.223) - получатель
//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);
<p>At 192.18.15.223 server</p>
Nothing received yet
На другом сервере (например: 120.0.0.211) - отправитель
//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
}
At 120.0.0.211 server
send the message!
Вышеуказанные скрипты прекрасно работают в Chrome и Firefox, всплывающее окно и сообщение может быть получено, однако в IE (8+) оно только всплывает, но сообщение не получено (или можетт отправить).
Моя основная цель - сделать так, чтобы два домена отправляли и получали простые данные (тексты, одиночные фотографии и т. Д.), Не включая слишком много изменений в бэкэнде. Так что веб-сервис не считается.
Любая помощь будет признательна!
Вот несколько ссылок, которые могут быть полезны для изучения проблем.
Этот пост предлагает использовать attachEvent на IE, что я уже делал в кодах выше:addEventListener в Internet Explorer
Этот официальный документ Microsoft показывает, что IE 8+ должен поддерживать addEventListener:http://msdn.microsoft.com/en-us/library/ie/cc197057(v=vs.85).aspx
Рекомендуется использовать Jquery bind () для замены addEventListener:jQuery эквивалент JavaScript 'метод addEventListener