2010-04-19 14 views
10

Ho un IFRAME che dovrebbe essere riempito con il contenuto di JavaScript. Aveva il contenuto sia sul server di tutto quello che dovevo fare è:Riempire un IFRAME con contenuto dinamico da JavaScript

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

Ma il contenuto che ho è una pagina HTML generato sul client e rappresentato come una stringa (non ho molta influenza su di esso). Come posso popolare il contenuto del mio iframe in modo programmatico?

risposta

21

Credo che tu stia cercando qualcosa di simile:

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

Per me in Chrome versione 41.0.2272.76 m se non si apre() prima iframeDoc, quindi * aggiungerà * il testo; se apri() cancella iframeDoc e * sovrascrive * il testo. È possibile scrivere ('in grassetto') e l'HTML verrà interpretato come un tag. –

+0

Ulteriori letture su http://stackoverflow.com/a/10433550/1532274 –

0

Che dire .innerHTML?

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

L'ho provato ma non ha funzionato. – user256890

4

provato a installare .innerHTML ma che non funziona. Soluzione di Jeffery To funziona. Basta aggiungere che myIframe.contentWindow possono non operare in vecchi browser (IE leggere vecchie versioni) in modo da poter fare

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

quindi utilizzare il documento aperto(), write() & close() come sopra.