185 votes

Comment obtenir le contenu du corps d'un iframe en Javascript?

 <iframe id="id_description_iframe" class="rte-zone" height="200" frameborder="0" title="description">
  <html>
    <head></head>
    <body class="frameBody">
      test<br/>
    </body>
  </html>
</iframe>
 

Ce que je veux obtenir, c'est:

 test<br/>
 

186voto

algorhythm Points 1658

D'abord vous obtenez iframe

 var iframe = document.getElementById('your-iframe-id');
 

Dans le code source de jQuery, la solution pour obtenir le document iframe est la suivante:

 var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
 

Et ensuite, vous pouvez généralement utiliser getElementsByTagName ou getElementById pour sélectionner les éléments DOM:

 var elem;
if (iframeDocument) {
   elem = iframeDocument.getElementById('frameBody');
}
 

74voto

Michael Adedayo Points 389

En utilisant JQuery, essayez ceci:

 $("#id_description_iframe").contents().find("body").html()
 

60voto

bizzr3 Points 536

cela fonctionne parfaitement pour moi:

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

26voto

Jose Basilio Points 29215

Autant que je sache, un Iframe ne peut pas être utilisé de cette façon. Vous devez pointer son attribut src vers une autre page.

Voici comment obtenir son contenu en utilisant le vieux javascript de l'avion. Cela fonctionne avec IE et Firefox.

 function getFrameContents(){
   var iFrame =  document.getElementById('id_description_iframe');
   var iFrameBody;
   if ( iFrame.contentDocument ) 
   { // FF
     iFrameBody = iFrame.contentDocument.getElementsByTagName('body')[0];
   }
   else if ( iFrame.contentWindow ) 
   { // IE
     iFrameBody = iFrame.contentWindow.document.getElementsByTagName('body')[0];
   }
    alert(iFrameBody.innerHTML);
 }
 

10voto

CoursesWeb Points 1679

utilisez content dans l'iframe avec JS:

 document.getElementById('id_iframe').contentWindow.document.write('content');
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X