2012-10-02 14 views
8

¿Alguien puede explicar el significado del atributo complete?HTML img atributo "completo"

He leído en algún lugar que podría tener que ver con DOM.

<img src="/folder/pic.jpeg" complete="complete" /> 

Respuesta

6

Se establece cuando la imagen se ha descargado.

Nunca lo he visto explícitamente en el HTML como en su ejemplo (MDN dice que no es un atributo para un elemento img). Solo uso para verificar si la imagen se ha descargado con JavaScript (sin embargo, hay problemas de navegador cruzado con eso). La propiedad en un HTMLImageElement devuelve un Boolean.

[].forEach.call(document.querySelector("img"), function(img) { 
    // Loaded? 
    img.complete && (img.style.border = "5px solid #f00"); 
}); 
+0

¿Vale la pena señalar que se trata de una etiqueta no estándar, y que se agrega mediante algunos javascript (probablemente en un controlador de carga de la imagen) en lugar del navegador en sí? – enhzflep

+0

@Zaffy Claro, pero tiene sus propios problemas. – alex

+0

¡Gracias por la información! – user1323246

0

Se utiliza para verificar si la imagen ha terminado de cargarse.

document.getElementsByTagName('img')[0].complete 

devuelve true si se ha terminado de cargar, de lo contrario es falso. Sin embargo, no se usa como un atributo como en su ejemplo.

10

El atributo complete no tiene un significado definido por especificaciones, y probablemente no tenga ningún efecto (aunque se puede leer con el método getAttribute()). Entonces, el código en la pregunta probablemente se basa en un malentendido.

según los diseños de HTML5, no es el completepropiedad para un objeto que corresponde un elemento img, como por la interfaz de HTMLImageElement. El definition of the complete property básicamente significa que el valor es verdadero cuando el navegador ha recibido completamente la imagen (aunque hay algunos matices aquí). Como esto debe ser controlado por el navegador, reflejando el estado de carga, es natural que la propiedad esté definida como de solo lectura.

Esta propiedad está ampliamente presente en los navegadores, pero aparentemente de forma discontinua: si tiene un elemento img que hace referencia a un recurso inexistente (404 No encontrado), Chrome y Firefox indican que la propiedad tiene el valor verdadero (IE pone las cosas bien aquí: falso). Entonces la propiedad no es de mucha utilidad por el momento.

Establecer un atributo en HTML no tiene ningún efecto en esto. Las propiedades del atributo HTML y del objeto del elemento se corresponden entre sí solo cuando se ha definido una correspondencia.

+3

Resulta, IE lo entendió mal, al menos [de acuerdo con la especificación] (http://www.w3.org/TR/html5/embedded-content-0.html#dom-img-complete). Diría que todo el mundo lo entendió mal: un booleano simple no es suficiente. Necesitamos algo más sólido como un estado, por ejemplo, cargado, cargando, no encontrado, formato no válido, etc. – gilly3

Cuestiones relacionadas