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

"Message" event listener in IE9 can't receive object as event.data value

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

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 的常见问题还是我的错误?怎么可能解决?

我自己的问题不太正确,我现在才发现。 我忘了提及消息的发送方式:

window.postMessage(obj, url);

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