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>