IE9中的“Message”事件监听器无法作为event.data值接收对象

时间:2015-11-30 14:54:21

标签: javascript internet-explorer javascript-events internet-explorer-9

我有一个这样的事件监听器:

function onGetMsg(event) {
    alert(event.data.message);
}
window.addEventListener('message', onGetMsg);

event.data 结构是:

{ 
  message: ‘some msg’, 
  data: [ {...}, ... ] 
}

在其他浏览器(以及IE10 +)中,它以可预测的方式工作。但是IE9将 event.data 视为字符串"[object Object]",因此 onGetMsg 无法获得“message”属性。

这是IE9的常见问题还是我的错误?它怎么可能解决?

1 个答案:

答案 0 :(得分:0)

我自己的问题不太正确,因为我现在发现了。 我忘了提到消息发送方式的事实:

window.postMessage(obj, url);

这是我问题的关键。所以this question的答案也适合我的情况。