2010-04-19 78 views
10

Tengo un IFRAME que debe llenarse con contenido de JavaScript. el contenido había de ser todo lo que tenía que hacer el servidor es:Rellenar un IFRAME con contenido dinámico de JavaScript

function onIFrameFill() { 
     myIframe.location.href = "HelloWorld.html"; 
    } 

Pero el contenido que tengo es una página HTML que se genera en el cliente y representado como una cadena (no tengo mucha influencia en él). ¿Cómo puedo llenar el contenido de my iframe programáticamente?

Respuesta

21

creo que estés buscando algo como:

var iframeDoc = myIframe.contentWindow.document; 
iframeDoc.open(); 
iframeDoc.write('hello world'); 
iframeDoc.close(); 
+1

Para mí en la versión de Chrome 41.0.2272.76 m si no abre() primero el iframeDoc, entonces * anexará * el texto; si abre() borra iframeDoc y * sobrescribe * el texto. Puede escribir ('negrita') y el HTML se interpretará como una etiqueta. –

+0

Lectura adicional en http://stackoverflow.com/a/10433550/1532274 –

0

¿Qué hay de .innerHTML?

myIframe.innerHTML = "This is some HTML <b>text</b>"; 
+0

Lo intenté pero no funcionó. – user256890

4

intentado fijar .innerHTML pero eso no funciona. La solución de Jeffery To funciona. Sólo quiero añadir que myIframe.contentWindow podrían no funcionar en navegadores antiguos (IE leer las versiones antiguas) para que pueda hacer

var iFrameWindow = myIframe.contentWindow || myIframe.documentWindow; 
var iFrameDoc = iFrameWindow.document; 

a continuación, utilizar el documento abierto(), write() & close() que el anterior.

Cuestiones relacionadas