IE9中的数据问题addEventListener

data issue addEventListener in IE9

我必须将一些数据从 iframe 传递给父级。

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.

这里缺少什么?

来自Can I Use... page on Cross-document Messaging

Partial support in IE8-9 refers to only working in frames/iframes (not other tabs/windows). Also in IE 9 and below an object cannot be sent using postMessage.

但是,您可以使用替代语法:

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