У меня есть два отдельных веб-приложения, угловое родительское приложение и дочернее приложение реакции. Родительское приложение загружает дочернее приложение в iframe. Я пытаюсь заставить эти приложения общаться друг с другом window.postMessage(), но либо сообщение не отправляется должным образом, либо не принимается.
Вот именно то, что я пробовал.
Родительское приложение:
window.postMessage(message, "*")
Детское приложение:
window.addEventListener("message", (event) => {
console.log(event)
}
Единственное, что мне нужно сделать, это когда я консольно регистрирую окно на родительском элементе, я вижу:
postMessage: f postMessage: ()
length: 1
name: "postMessage"
arguments: [Exception: TypeError: 'caller', 'callee', and 'arguments' properties may not
be accessed on strict mode functions or the arguments objects for calls to
them at Function.s (<anonymous>:1:83)]
caller: [Exception: TypeError: 'caller', 'callee', and 'arguments' properties may not
be accessed on strict mode functions or the arguments objects for calls to
them at Function.s (<anonymous>:1:83)]
Решение проблемы
Родитель должен отправить сообщение из windowцели (дочерний процесс, iframe в вашем случае), а не из windowобъекта родителя:
const child = document.querySelector('iframe').contentWindow;
child.postMessage(message, "*")
Комментариев нет:
Отправить комментарий