Sé que hay algunas herramientas y técnicas para retrasar la carga de javascript, pero tengo un iframe que me gustaría retrasar la carga hasta que el resto de la página haya terminado de descargarse y renderizarse (el iframe está en un escondido que lo hará no se revelará hasta que alguien haga clic en una pestaña en particular en la página. ¿Hay alguna manera de retrasar la carga de un iframe? Cualquier sugerencia sería muy apreciada. ¡Gracias!¿Carga diferida del iframe?
Respuesta
con jQuery es fácil!
o bien adjuntar el código que carga el i marco dentro de un $()
o use $(document).ready(function(){})
estos dos son iguales y ejecutarían su código una vez que el DOM esté listo.
p. Ej.
$(document).ready(function(){
$('iframe#iframe_id').attr('src', 'iframe_url');
});
ver más en http://www.learningjquery.com/2006/09/introducing-document-ready
Utilice Javascript en el evento onLoad, o en el botón clic manipulador, para establecer el atributo src del iframe.
O mi uso favorito
setTimeout('your app', 6000)
que hará que sea esperar x número de milisegundos para llamar a cualquier función ....
¿Qué significa exactamente "su aplicación" en su ejemplo? – fresskoma
no saben si necesita ejecutar sin javascript. Pero lo mejor es hacer méthode cambiar el src directa después de que el iframe:
<iframe id="myIframe" src="http://.." />
<script type="text/javascript">
var iframe = document.getElementById('myIframe'),src = iframe.src;
iframe.src = '';
document.onload = function(){iframe.src = src;}
</script>
Usando $ (document) .ready se iniciará la prestación de su marco flotante directa después de que el árbol DOM es construir, pero antes de que todo el contenido en tu lado está cargado, así que creo que esto no es lo que quieres.
jQuery tiene la .load evento, que es la misma que onload (después se cargan todos los recursos)
$(window).load(function(){ iframe.src = src; }
Hey Eskimo- Supongo que su respuesta funcionaría, aunque no pude hacerlo funcionar (estoy seguro de que se debió a un problema de mi parte) :) No tengo la reputación suficiente para votar por usted hasta ahora, pero gracias por la sugerencia! – Sean
También puede aplicar display: none para el iframe con CSS, a continuación, utilizar .show de jQuery como esto :
$(document).ready(function(){
$('iframe.class_goes_here').show();
});
El iframe se cargará incluso si está en un subárbol 'display: none' dom - simplemente no se mostrará. –
Esto funciona para mí, pero tiene problemas si cambia el código en absoluto:
function loadIFrame() {
window.frames['BodyFrame'].document.location.href = "iframe.html";
}
function delayedLoad() {
window.setTimeout(loadIFrame2, 5000);
}
Usando:
<iframe src="" onLoad="delayedLoad()"></iframe>
Puede utilizar el atributo aplazar cuando es necesario cargar pasado después de CSS, JS, etc:
iframe defer src="//player.vimeo.com/video/89455262"
esto no funciona –
carga iFrame después de la página se ha cargado Con jQuery y un poco de html y js
// Javascript
$(window).bind("load", function() {
$('#dna_video').prepend('<iframe src="//player.vimeo.com/video/86554151" width="680" height="383" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>');
});
<!-- Append JQuery-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- HTML -->
<div id="dna_video"></div>
- 1. ¿Biblioteca de carga diferida?
- 2. Carga diferida en Knockout JS
- 3. Carga diferida de los atributos
- 4. Carga diferida, carga diferida y carga ansiosa en el marco de la entidad
- 5. UITableView optimización de carga diferida
- 6. nhibernate opciones de carga diferida
- 7. Páginas de carga diferida en UIScrollView
- 8. imágenes de carga diferida y SEO
- 9. UITableView con desplazamiento infite y carga diferida
- 10. Elementos de carga diferida con filtrado
- 11. Carga diferida de TreeView en .NET
- 12. Spring + Hibernate Error de carga diferida
- 13. imágenes carga diferida dentro de jQuery Mobile
- 14. Deshabilitar la carga diferida en Hibernate
- 15. Carga diferida de Hibernate en objetos separados
- 16. Carga diferida de imágenes con degradación (JavaScript)
- 17. La carga diferida en Rails 3.2.6
- 18. Detener iframe desde la carga
- 19. PHP Objetos de carga diferida e inyección de dependencia
- 20. Implementación de módulos con carga diferida en VBScript
- 21. Altura dinámica del iframe
- 22. Patrón de repositorio con carga diferida usando POCO
- 23. Cómo convertir esta consulta LINQ en carga diferida
- 24. ¿Cómo el rendimiento implementa el patrón de carga diferida?
- 25. ¿El LINQ con un resultado escalar disparar la carga diferida
- 26. Evitar que Dozer active la carga diferida de Hibernate
- 27. Entity Framework 4 propiedades de carga diferida selectiva
- 28. Primefaces DataTable, la carga diferida y CommandButton por fila
- 29. fluente nhibernate r1.0 fluidez mapeo deshabilitar carga diferida
- 30. GWT: carga diferida de recursos de JS externos
Resulta que su primera línea resolvió todo. Estaba usando una plantilla horrible para pestañas que descargué de un sitio web al azar, y me gustó presentar mi iframe oculto delante de todo hasta que esté completamente cargado. Cuando cambié el uso de pestañas jquery (que parecían mucho más bonitas de arrancar), la representación iframe ya no era un problema. jQuery ROCKS! Gracias :) – Sean
En IE, esto puede romper el botón Atrás porque agrega la nueva fuente de iframe al historial del navegador. – Sjoerd
El número de personas que responden en jQuery cuando se les solicita Javascript da miedo estos días. –