¿El evento de carga del IFRAME se activa cuando el HTML se ha descargado completamente, o solo cuando todos los elementos dependientes se cargan también? (css/js/img)¿Cuándo se desencadena un evento de carga de IFRAME?
Respuesta
El último: <body onload=
se dispara solo cuando todos los elementos dependientes (css/js/img) se han cargado también.
Si desea ejecutar código JavaScript cuando se ha cargado el código HTML, hacer esto al final de su HTML:
<script>alert('HTML loaded.')</script></body></html>
Aquí es una relevant e-mail thread sobre la diferencia entre carga y lista (jQuery es compatible con ambos).
Supongo que lo mismo es cierto para el documento principal en sí, no solo para los iframes. – MatrixFrog
Justo cuando carga el html, no los elementos dependientes. (o eso creo).
para disparar cuando el resto de la página se carga hacer jQuery (ventana) .load (function() {o no window.onload documentar onready.
También puede comprobar para ver si se carga un elemento de imagen y allí ... si la imagen. load-- etc.
La respuesta anterior (utilizando proceso de carga) es correcto, sin embargo, en ciertos casos esto parece comportarse mal. Sobre todo cuando la generación dinámica de una plantilla de impresión para el contenido web.
Intento imprimir ciertos contenidos de una página creando un iframe dinámico e imprimiéndolo. Si contiene imágenes, no puedo hacer que se dispare. n las imágenes están cargadas. Se dispara siempre demasiado pronto cuando las imágenes todavía están cargando lo que resulta en una impresión incompleta:
function printElement(jqElement){
if (!$("#printframe").length){
$("body").append('<iframe id="printframe" name="printframe" style="height: 0px; width: 0px; position: absolute" />');
}
var printframe = $("#printframe")[0].contentWindow;
printframe.document.open();
printframe.document.write('<html><head></head><body onload="window.focus(); window.print()">');
printframe.document.write(jqElement[0].innerHTML);
printframe.document.write('</body></html>');
// printframe.document.body.onload = function(){
// printframe.focus();
// printframe.print();
// };
printframe.document.close();
// printframe.focus();
// printframe.print();
// printframe.document.body.onload = function()...
}
como se puede ver que probé varios métodos para unir el controlador onLoad ... en cualquier caso, se disparará demasiado pronto. Lo sé porque la vista previa de impresión del navegador (google chrome) contiene imágenes rotas. Cuando cancelo la impresión y vuelvo a llamar a esa función (las imágenes están almacenadas en la memoria caché), la vista previa de impresión está bien.
... afortunadamente encontré una solución. no es bonita, pero adecuada. Lo que hace es escanear el subárbol de las etiquetas 'img' y verificar el estado 'completo' de esas. si está incompleto, demora una nueva comprobación después de 250 ms.
function delayUntilImgComplete(element, func){
var images = element.find('img');
var complete = true;
$.each(images, function(index, image){
if (!image.complete) complete = false;
});
if (complete) func();
else setTimeout(function(){
delayUntilImgComplete(element, func);}
, 250);
}
function printElement(jqElement){
delayUntilImgComplete(jqElement, function(){
if (!$("#printframe").length){
$("body").append('<iframe id="printframe" name="printframe" style="height: 0px; width: 0px; position: absolute" />');
}
var printframe = $("#printframe")[0].contentWindow;
printframe.document.open();
printframe.document.write(jqElement[0].innerHTML);
printframe.document.close();
printframe.focus();
printframe.print();
});
}
esto es muy útil thx – kofifus
- 1. Evento de carga para iFrame no activado en IE
- 2. ¿Desencadena programáticamente un evento?
- 3. ¿Cuándo ocurre un evento de carga de un navegador?
- 4. ¿Cuándo se desencadena el evento DataBinding durante el ciclo de vida de la página ASP .NET?
- 5. Javascript "addEventListener" Evento se desencadena en la carga de la página
- 6. ¿Cómo se desencadena un evento en todas las clases?
- 7. history.pushState no desencadena evento 'popstate'
- 8. Cómo desencadenar un evento de carga al descargar un archivo en un iframe?
- 9. página principal de Google no se carga en un iframe
- 10. WPF Window.Close() no desencadena el evento UserControl.Unloaded
- 11. ¿Qué evento se desencadena cuando Mac vuelve de estar dormido?
- 12. Al disparar el evento Evento de descubrimiento, el evento itemtap se desencadena
- 13. onscroll evento no se desencadena en el iPad después de un solo toque panorámica?
- 14. ¿Carga diferida del iframe?
- 15. XmlReader - ¿Elemento de cierre automático no desencadena un evento EndElement?
- 16. Backbone: ¿por qué un collection.reset no desencadena un evento modelo?
- 17. Desenfoque El evento no se desencadena en IE7 e IE6
- 18. El evento LongClick también desencadena el evento Click
- 19. ¿Se desencadena un evento cuando cambia el 'Controlador de vista seleccionado' de UITabBarController?
- 20. Evento de carga de widget en Dojo
- 21. Detener iframe desde la carga
- 22. evento de colocación de tecla en un iframe
- 23. ASP.NET LoginStatus dentro de LoginView no desencadena el evento LoggingOut
- 24. Evento de carga SVG llamado demasiado temprano?
- 25. ¿Cuándo se carga el archivo de configuración de logback?
- 26. iFrame no se carga en la carga de página (jQuery Mobile)
- 27. ¿Cómo se carga una URL en iframe con jQuery
- 28. ¿Cómo se detiene y luego inicia/desencadena un evento con JQuery?
- 29. ¿Hay alguna manera de atrapar la finalización de un evento de carga de archivos de sonido?
- 30. Evento de carga de plantilla para meteor.js
Siempre que no esté utilizando Internet Explorer, es cuando se dispara. – Tortoise
Cuando no está utilizando un iDevice, se dispara cuando se han cargado todos los elementos. – NoBugs
@tortoise: gracias por hacerme sonreír. – ling