1

Мне нужно передать некоторые данные от iframe родительскому.data issue addEventListener в IE9

iframe код

window.parent.postMessage({message: 'Test'}, "*"); 

Родитель Код

window.addEventListener('message', function (e) { 
 
    alert('Received message 1 : ' + e.data.message); 
 
    document.getElementById('ExchangeID').value=e.data.message; 
 
    }, false);

Это отлично работает в Firefox, Chrome, Safari. Когда я запускаю это в IE9, я получаю сообщение об ошибке e.data.message is undefined.

Что здесь отсутствует?

+0

Это потому, что IE9 не позволяет отправить объект. Вы можете просто сделать 'window.parent.postMessage ('test', '*');' – putvande

+0

Спасибо @putvande, он работает – Anandhakrishnan

ответ

1

Из Can I Use... page on Cross-document Messaging:

Image

Частичная поддержка в IE8-9 относится только к работе в кадрах/IFrames (не другие вкладки/окна). Также в IE 9 и ниже объект не может быть отправлен с использованием postMessage.

Вы можете, однако, использовать альтернативный синтаксис:

window.parent.postMessage("test", "*")