jQuery不支持postmessage事件?

时间:2012-03-28 09:18:40

标签: jquery html5 postmessage

当我使用jQuery事件监听器来处理消息事件时,如下所示:

$(window).on('message', function(e) {
    var data = e.data; // data = undefined
});

数据未定义!我确定我已将数据传递到当前窗口。因为如果我使用“addEventListener”,一切顺利!

那么,问题是什么?

2 个答案:

答案 0 :(得分:104)

jQuery可能正在预处理事件的data属性,此操作可能无法正确支持message事件。

尝试使用originalEvent属性获取数据:

$(window).on("message", function(e) {
    var data = e.originalEvent.data;  // Should work.
});

答案 1 :(得分:11)

有些浏览器会使用" onmessage"事件。我建议稍微改进之前的答案,以提高兼容性:

$(window).on("message onmessage", function(e) {
    var data = e.originalEvent.data;
});