Solo quiero aprender a leer el contenido de Iframe en el evento onLoad de iframe y escribir su contenido en la página principal? Gracias ..Lectura de Iframe Content en Iframe Load
Respuesta
He luchado con lo mismo este día. Parece importar cómo accede al iframe. Si usa document.getElementById()
, obtiene un objeto Iframe, que no tiene el evento onload
. Sin embargo, si accede a través de window.frames[]
matriz, por ejemplo
var iframeWindow = top.frames['iframeID'],
se obtiene un objeto de la ventana, que tiene proceso de carga.
(es decir, utiliza el atributo id marco, pero ff utiliza atributo de nombre. Así que usar tanto y hacer lo mismo)
A continuación, puede asignar
iframeWindow.onload=function(){iframeContent=iframeWindow.document.body.innerHTML;};
Aviso, ya que iframeWindow es una ventana objeto, usa la sintaxis de la ventana para acceder al contenido.
Lo hice pero no funcionó para mí. ¿Podrías enviarme tu ejemplo si no te importa? Gracias. – Tarik
jQuery("#xiframe").load(function()
{
var doc = null;
try{
doc = this.document || this.contentDocument || this.contentWindow && xiframe.contentWindow.document || null;
} catch(err) {
alert('error: ' + err.description);
}
try {
if(!doc) {
alert('error');
return false;
}
} catch(err) {
alert('error: ' + err.description);
return false;
}
alert(String(jQuery(doc.body).html());
}
Gracias, pero en realidad el principal problema es cómo se completa la carga de la página para obtener el contenido y escribir en el contenido de la página principal. – Tarik
contenido "
... ... " o " ..."? –Tenga en cuenta que la etiqueta jQuery no se ha especificado. – dotTutorials
- documento de nivel superior (la página en la que aparece el iframe)
- documento niño (la página que se muestra dentro del marco flotante)
Si estos dos documentos se encuentran en el mismo dominio, puede usar el objeto window.parent.document en el controlador de eventos de carga del documento secundario para acceder al documento principal.
document.getElementById('iframeID').contentWindow.onload = function(){
top.document.innerHTML = this.document.innerHTML;
}
Se puede utilizar esta función jQuery en la página padre y también es compatible con muchas otras funciones para agregar y quitar materias:
<script type="text/javascript">
function myFunction() {
var $currIFrame = $('#Frame1');
$currIFrame.contents().find("body #idofElement").val('Value i want to set');
}
</script>
En el código anterior: #idofElement
es el elemento de la página HTML en iframe cuya valor que desea establecer. Espero que te ayude ..
Una respuesta agradable. No sabía que jQuery tiene esa función 'contents()' y parece realmente útil especialmente con iFrames. – Tarik
- 1. jQuery iframe load() event?
- 2. make iframe height fit content
- 3. iframe comportamiento de onload vs addEventListener ('load')
- 4. Cómo cerrar iframe desde dentro de iframe?
- 5. Fancybox.close() en un iframe
- 6. Iframe ContentWindow
- 7. Actualizar iFrame (problema de caché)
- 8. div overlay sobre iframe
- 9. Detectar redirección en iFrame
- 10. Mostrar imagen en Iframe
- 11. Insertar HTML en iframe
- 12. abrir enlace en iframe
- 13. Jquery dentro de Iframe
- 14. Alternativas de IFrame
- 15. Botón de recarga Iframe
- 16. Prácticas recomendadas de iFrame
- 17. Capturar excepciones de iframe
- 18. Iframe cadena de consulta
- 19. Fondo transparente de iframe
- 20. Estiramiento de iframe en HTML5
- 21. getElemenById de iframe
- 22. Obtener iframe src param desde dentro del mismo iframe
- 23. jQuery: Accediendo al iframe dom desde el mismo iframe
- 24. acceso al nombre del iframe desde iframe interior
- 25. Cómo cerrar un iframe dentro del propio iframe
- 26. Cambiar iframe src con Javascript
- 27. Deshabilitar JavaScript en iframe/div
- 28. IE7 iframe página en blanco
- 29. Webview iframe overflow
- 30. acceso div en iframe padre
Hay una manera de hacerlo, pero es complicado y requiere que el iframe represente una página que generas/que controlas. ¿El contenido de representación iframe que controlas? –