У меня есть веб-приложение, в котором я общаюсь с помощью 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 все равно работает без проблем, но как я могу получитьизбавиться от сообщения об ошибке?