Передача перекрестного происхождения от родительского к дочернему iframe

Я работаю над сторонним Javascript. Меня особенно интересует связь между родительской страницей и дочерним фреймом с другого происхождения. Используя window.postMessage, тривиально безопасно отправлять сообщения от дочернего элемента и иметь родительский прием с событием message.

Мне не повезло в другом направлении. Могу ли я получить подтверждение, что невозможно связаться с родителем ребенку с помощью postMessage? Если нет, то каковы способы решения этой проблемы?

Ответ 1

Вы можете использовать .postMessage() между любыми двумя взаимодействующими окнами. Неважно, в каком направлении вы отправляете сообщение. Если он не работает в одном направлении, возможно, ошибка в реализации. Возможно, вам потребуется убедиться, что у вас есть соответствующий объект окна.

Для iframe вы хотели бы использовать свойство .contentWindow, чтобы получить его окно в современных браузерах.

Некоторая хорошая документация здесь: https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage