Подтвердить что ты не робот

JQuery не поддерживает событие postmessage?

Когда я использую jQuery event listener для обработки события сообщения, как показано ниже:

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

данные undefined! Я уверен, что передал данные в текущее окно. Потому что, если я использую "addEventListener", все будет хорошо!

Итак, в чем проблема?

4b9b3361

Ответ 1

jQuery может быть предварительно обработать свойство события data, и эта операция может не поддерживать поддержку события message (пока).

Попробуйте использовать свойство originalEvent для извлечения данных:

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

Ответ 2

В некоторых браузерах используется событие onmessage. Я предлагаю немного улучшить предыдущий ответ для повышения совместимости:

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