Как использовать postMessage на iFrame - PullRequest
0 голосов
/ 28 августа 2018

У меня есть 2 приложения nodeJS со следующими доменами:

  • локальный: 8000
  • локальный: 3000

В localhost: 3000, у меня есть текстовая область и кнопка отправки.

Я хочу опубликовать содержимое текстовой области (используя postMessage) на localhost: 8000 / (some_id) и отобразить содержимое на странице localhost: 8000.

Затем я хочу показать iFrame localhost: 8000 / (some_id) на странице localhost: 3000.

У меня много проблем с выполнением этого. Я должен выполнить это таким образом, используя postMessage ().

PS: я знаю, что лучше всего избегать iFrames, однако для целей моего приложения это необходимо использовать.

1 Ответ

0 голосов
/ 28 августа 2018

Все, что вы postMessage на одной стороне, будет отправлено слушателю message на другой стороне.

// in the parent document
iframeElement.contentWindow.postMessage('hi!');
// in the iframe
window.addEventListener('message', ({ data }) => {
  console.log('i got some data!', data); // i got some data! hi!
});

Вы также можете пойти другим путем и использовать window.parent.postMessage() в источнике iframe и прослушать его с помощью window.addEventListener('message', ...) в родительском документе.

...