Ошибка PostMessage при переносе порта в Firefox - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть веб-приложение, в котором я общаюсь с помощью iframe с некоторым кодом, который я также контролирую.Я использую Channel Messaging для связи между родительским приложением и iframe.Это работает без проблем в Chrome и Safari, а также в Firefox, но в Firefox я получаю сообщение об ошибке.

В iframe я инициализирую канал:

// Setup channel messaging to the host
const channel = new MessageChannel();
channel.port1.onmessage = (event: MessageEvent) => {
    onRequest(event);
};
port1.start();
window.parent.postMessage('init', hostname, [channel.port2]);

На родительской сторонеЯ прослушиваю сообщение 'init':

window.addEventListener('message', (event) => {
    event.ports[0].onmessage = ((event: MessageEvent) => {
        responseHandler(event);
    });
});

Только в Firefox (протестировано для MacOS). Я получаю следующее сообщение об ошибке: "ERROR TypeError:" event.ports [0] is undefined ", и когдаглядя на событие:

ports: []

В портах Chrome и Safari вроде как правильно, и я не получаю сообщение об ошибке.

Как уже говорилось, в Firefox все равно работает без проблем, но как я могу получитьизбавиться от сообщения об ошибке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...