2010-04-19 11 views
10

J'ai un IFRAME qui devrait être rempli avec du contenu de JavaScript. Avait le contenu soit sur le serveur tout ce que je devais faire est:Remplir un IFRAME avec du contenu dynamique à partir de JavaScript

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

Mais le contenu que j'ai une page HTML sur le client et représenté sous forme de chaîne (je n'ai pas beaucoup d'influence sur elle). Comment puis-je remplir le contenu de mon iframe par programme?

Répondre

21

Je pense que vous cherchez quelque chose comme:

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

Pour moi dans la version 41.0.2272.76 m de Chrome si vous n'ouvrez pas() le iframeDoc en premier, alors il * ajoutera * le texte; Si vous ouvrez(), il efface le iframeDoc et * écrase * le texte. Vous pouvez écrire ('gras') et le code HTML sera interprété comme une balise. –

+0

Plus de lecture à http://stackoverflow.com/a/10433550/1532274 –

0

Qu'en est-.innerHTML?

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

J'ai essayé cela mais cela n'a pas fonctionné. – user256890

4

essayé d'installer .innerHTML mais cela ne fonctionne pas. Solution de Jeffery To works. Je veux juste ajouter que myIframe.contentWindow pourrait ne pas fonctionner dans les anciens navigateurs (lire les anciennes versions IE) afin que vous puissiez faire

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

puis utilisez le document ouvert(), write() & close() comme ci-dessus.