jQuery不支持postmessage事件?

ste*_*fan 62 jquery html5 postmessage

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

$(window).on('message', function(e) {
    var data = e.data; // data = undefined
});
Run Code Online (Sandbox Code Playgroud)

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

所以有什么问题?

Fré*_*idi 106

jQuery可能正在预处理事件的data属性,并且此操作可能无法正确支持该message事件(尚未).

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

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

  • 为你+1,这只是帮我停止拔头发. (3认同)

小智 11

有些浏览器使用"onmessage"事件.我建议稍微改进以前的答案以增加兼容性:

$(window).on("message onmessage", function(e) {
    var data = e.originalEvent.data;
});
Run Code Online (Sandbox Code Playgroud)