2013-05-26 28 views
14

Posso già ottenere il contenuto di un Iframe con jQuery, anche se mi piacerebbe imparare come ottenerlo con puro JavaScript.Ottenere contenuti di Iframe con Pure JavaScript

Questo è quello che ho finora.

var frame = document.getElementById('awc_frame'); 
var easyBB = frame.contentWindow.document.body.innerHTML; 
easyBB.getElementById('chatbox-title').innerText="Chatbox"; 

Cosa sto facendo male, per favore aiutatemi. Anche originariamente il frame non ha un ID, e ho già provato questo

var frame = document.frames['awc_frame']; 

È efficiente questo cross browser? E poi come ottengo il contentWindow? Solo alcune spiegazioni, quindi posso farlo con JavaScript e non con jQuery. La versione jQuery è questa

var frame = $('#avacweb_chat iframe'); 
var easyBB = $('#chatbox-title',frame.contents()).text('Chatbox'); 
+1

possibile duplicato di [Come ottenere il contenuto del corpo di un iframe in Javascript?] (Http: // stackoverflow.com/questions/926916/how-to-get-the-bodys-content-of-an-iframe-in-javascript) –

+1

scusa, nessuna offesa intesa. Esiste un consenso della comunità (ad esempio Meta domanda) che afferma che non è opportuno contrassegnare come duplicati di vecchie domande? Sei d'accordo che sono la stessa domanda? Se no, puoi spiegare perché? Potrei aver fatto un falso. –

+1

Beh sì diverso. Scusami per la mia maleducazione, ero solo irritato. Diverso come mostro il mio codice, sia jquery che vanilla e quella domanda non mostra alcun codice dall'OP – EasyBB

risposta

31

Se si trova nello stesso dominio, provare questo. Non ti permetterà di accedere ai contenuti iframe se l'iframe è di origine diversa dalla finestra che stai visualizzando.

var iframe = document.getElementById("awc_frame"); 
var iframe_contents = iframe.contentDocument.body.innerHTML; 

esempio Lavorare con iframe jsfiddle visualizzazione di una pagina sullo stesso dominio:

http://jsfiddle.net/tqAL3/1/

+0

Specificato su: http://www.w3.org/TR/html5/embedded-content-0.html#dom-iframe- contentdocument –

+0

E se volessi che il HEAD fosse con esso? Devo fare contentDocument.head.innerHTML e concatenare il corpo o c'è un modo più veloce – Rayjax

+0

non importa -> iframe.document.getElementsByTagName ('html') [0] .innerHTML – Rayjax

Problemi correlati