"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的答案也适合我的情况。
我有一个这样的事件监听器:
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的答案也适合我的情况。