Код window.addEventListener('message',
должен появиться в документе parent .
Должен запускаться автоматически.Это не должно быть внутри функции.
(Вы можете поместить его в функцию, но она по-прежнему должна запускаться первой, и в этом случае нет причин для этого).
вызов postMessage
должен быть внутри сценария в документе внутри фрейма , и он должен отправить данные, которые вы хотите, к родителю.
например,
window.parent.postMessage({ html: document.body.innerHTML }, '*');
Теперь, если вы хотите инициировать выборку HTML в ответ на событие щелчка, тогда обоим документам нужно window.addEventListener('message',
и postMessage
вызов:
- В родительском окне есть прослушиватель сообщений, который прослушивает сообщение с HTML-кодом
- В родительском окне есть обработчик событий щелчка, который вызывает
iframe.contentWindow.postMessage
с запросом HTML - IframeВ документе есть прослушиватель сообщений, который прослушивает сообщение с запросом HTML, а затем вызывает
window.parent.postMessage({ html: document.body.innerHTML }, '*');