vanilla que more examples ejemplos javascript jquery html html5 mootools

javascript - more - vanilla js que es



Problema iframe entre dominios (2)

Por ejemplo, tengo un sitio llamado example.com en el que iframe está incrustado en el dominio iframe.net, ahora quiero leer el contenido de iframe y pasar algún parámetro para mostrar un mensaje de texto. Me gusta Hola con nombre de usuario.

Ahora el problema es que este no puede hacer la conexión entre los dos, incluso no soy capaz de obtener el innerHTML del iframe que utilicé siguiendo el enfoque

document.getElementById(''myframe'').contentWindow.document.body.innerHTML;

Lanza el error "Permiso denegado para acceder a la propiedad"

¿Alguien sabe leer y escribir en plataforma de dominio cruzado?


En Internet Explorer 8 evento pasado como un parámetro puede ser nulo , es por eso que necesita acceder al evento de una manera diferente:

En frame.html :

window.onmessage = function(event) { var evt = evt || window.event; evt.source.postMessage(''Message from iFrame'', evt.origin); };

En main.html :

window.onmessage = function(event) { var evt = evt || window.event; alert(evt.data); };

El evento se desencadena de la misma manera que Rob W ha presentado:

document.getElementById(''frameId'').contentWindow.postMessage(''message'',''*'');


Si no tiene control sobre el sitio enmarcado, no puede eludir la política de dominios cruzados.

Si tiene control sobre ambos sitios, puede usar el método postMessage para transferir datos a través de diferentes dominios. Un ejemplo muy básico:

// framed.htm: window.onmessage = function(event) { event.source.postMessage(document.body.innerHTML, event.origin); }; // Main page: window.onmessage = function(event) { alert(event.data); }; // Trigger: // <iframe id="myframe" src="framed.htm"></iframe> document.getElementById(''myframe'').contentWindow.postMessage('''',''*'');