Tengo dos aplicaciones web separadas, una aplicación principal angular y una aplicación secundaria de reacción. La aplicación principal está cargando la aplicación secundaria en un iframe. Estoy tratando de que estas aplicaciones se comuniquen entre sí usando window.postMessage() pero el mensaje no se envía correctamente o no se recibe.
Esto es exactamente lo que he probado.
Aplicación para padres:
window.postMessage(message, "*")Aplicación para niños:
window.addEventListener("message", (event) => { console.log(event) }Lo único que tengo que apagar es cuando registro en la consola la ventana en el padre, veo:
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)]El padre debe enviar el mensaje desde la window del objetivo (proceso secundario, iframe en su caso) no desde el objeto de la window del padre:
const child = document.querySelector('iframe').contentWindow; child.postMessage(message, "*")