Я пытаюсь отправить простое сообщение из дочернего документа (iframe) обратно в его прямой родительский элемент, используя API window.postMessage.window.postMessage не работает из iframe в родительский документ
В родительском документе я следующее:
window.addEventListener("message", receiveMessage, true);
var receiveMessage = function(event) {
console.log("Recieved event " + JSON.stringify(event));
}
Тогда в IFRAME У меня есть следующие:
window.parent.postMessage('message', '*');
на основе всего, что я читал, это должно работать и мой сообщение журнала должно быть записано на консоль. Кроме того, что он не работает.
Я знаю, что использование * как targetOrigin не всегда безопасно, но на данном этапе я просто хочу разобраться в ссылке.
Любые идеи или что-то очевидное, что мне не хватает?
Что значит «не работает» означает в этом контексте? Есть ли сообщения об ошибках? – Frxstrem
Есть ли обработчик события 'message' в элементе' iframe'? Вызывается 'postMessage()' в окне 'parent'? – guest271314
Если вы действительно написали то, что в вашем вопросе, 'receiveMessage' по-прежнему не определено, когда вы прикрепляете его как обработчик событий. Объявите его перед рукой или используйте дескриптор 'function receiveMessage() {}' функции, чтобы он определялся поверх скрипта. – Kaiido