Obtener elemento dentro de un iFrame

¿Cómo se obtiene un

dentro de un ?

 var iframe = document.getElementById('iframeId'); var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 

Podrías simplemente escribir:

 var iframe = document.getElementById('iframeId'); var innerDoc = iframe.contentDocument || iframe.contentWindow.document; 

y se devolverá el primer documento interno válido.

Una vez que obtenga el documento interno, puede acceder a sus elementos internos de la misma manera que accedería a cualquier elemento en su página actual. ( innerDoc.getElementById … etc.)

IMPORTANTE: asegúrese de que el iframe esté en el mismo dominio; de lo contrario, no podrá acceder a sus partes internas. Eso sería scripting entre sitios.

No olvide acceder a iframe después de que se cargue . Manera antigua pero confiable sin jQuery:

   
 window.parent.document.getElementById("framekit").contentWindow.CallYourFunction('pass your value') 

CallYourFunction() es función dentro de la página y esa acción de función en ella

Ninguna de las otras respuestas funcionaba para mí. Terminé creando una función dentro de mi iframe que devuelve el objeto que estaba buscando:

 function getElementWithinIframe() { return document.getElementById('copy-sheet-form'); } 

Luego llamas a esa función como para recuperar el elemento:

 var el = document.getElementById("iframeId").contentWindow.functionNameToCall(); 

Las respuestas anteriores dieron buenas soluciones usando Javscript. Aquí hay una solución jQuery simple:

 $('#iframeId').contents().find('div') 

El truco aquí es el método .contents() jQuery, a diferencia de .children() que solo puede obtener elementos HTML, .contents() puede obtener nodos de texto y elementos HTML. Es por eso que uno puede obtener el contenido del documento de un iframe usándolo.

Lectura adicional sobre jQuery .contents() : .contents ()

Tenga en cuenta que el iframe y la página deben estar en el mismo dominio.

El siguiente código lo ayudará a averiguar los datos de iframe.

 let iframe = document.getElementById('frameId'); let innerDoc = iframe.contentDocument || iframe.contentWindow.document;