the sure sent make intended iframes example domain different cross child being javascript iframe postmessage

javascript - sure - postmessage iframes



javascript postMessage no funciona (4)

No se que hacer. Probé varios códigos de muestra de diferentes fuentes, los probé en diferentes navegadores (desde Chrome 9 a FF 4), y aún así, nada parece estar funcionando con la función "postMessage". La consola JS no me da nada, ni un solo error, aún no pasa nada: los marcos no quieren comunicarse. En absoluto. Y esto ni siquiera es de dominio cruzado: ambos marcos son de mi dominio.

Aquí hay un ejemplo de código del último intento: Marco principal:

<iframe src="IFRAME_URL"></iframe> <script> window.addEventListener( "message", function (e) { if(e.origin !== ''DOMAIN''){ return; } alert(e.data); }, false); </script>

Marco infantil:

<html> <head></head> <body> <script> top.postMessage(''hello'', ''DOMAIN''); </script> </body>

Ayuda muy apreciada, muchas gracias.


El segundo parámetro de su postMessage de postMessage debe ser un URL como http://localhost


No estoy seguro de los problemas de seguridad, pero por lo general, solo tomo la ubicación de la ventana principal de esta manera:

var url = (window.location != window.parent.location) ? document.referrer: document.location; top.postMessage(''message'', url);


Si no está tratando con diferentes orígenes, ingrese location.origin ya que targetOrigin funcionará.

top.postMessage(''hello'', location.origin);


también puede enviar el mensaje a cualquier ventana usando top.postMessage(''hello'', "*");

HTML 1:

<iframe src="IFRAME_URL"></iframe> <script> window.addEventListener( "message", function (e) { alert(e.data); }, false); </script>

html 2:

<html> <head></head> <body> <script> top.postMessage(''hello'', ''*''); </script> </body>