Czy ktoś może wyjaśnić znaczenie atrybutu complete
?Atrybut HTML img "uzupełnij"
Czytałem gdzieś, że może to mieć związek z DOM.
<img src="/folder/pic.jpeg" complete="complete" />
Czy ktoś może wyjaśnić znaczenie atrybutu complete
?Atrybut HTML img "uzupełnij"
Czytałem gdzieś, że może to mieć związek z DOM.
<img src="/folder/pic.jpeg" complete="complete" />
Ustawiane po pobraniu obrazu.
Nigdy nie widziałem tego wyraźnie w HTML, jak w twoim przykładzie (MDN mówi, że to nie jest atrybut dla elementu img
). Używam tylko do sprawdzenia, czy obraz został pobrany przy pomocy JavaScript (są jednak problemy z przeglądarką). Właściwość na HTMLImageElement
zwraca Boolean
.
[].forEach.call(document.querySelector("img"), function(img) {
// Loaded?
img.complete && (img.style.border = "5px solid #f00");
});
Służy do sprawdzania, czy obraz się zakończył.
document.getElementsByTagName('img')[0].complete
Zwraca true jeśli zakończeniu ładowania, w przeciwnym wypadku false. Jednak nie jest używany jako atrybut, jak w twoim przykładzie.
Atrybut complete
ma znaczenie zdefiniowane w specyfikacji, a to chyba nie ma znaczenia (choć można go odczytać za pomocą metody getAttribute()
). Kod w pytaniu prawdopodobnie opiera się na pewnym nieporozumieniu.
Według projektów HTML5 istnieje complete
właściwość dla obiektu odpowiedniego elementu img
, jak na interfejsie HTMLImageElement
. definition of the complete
property oznacza po prostu, że wartość jest prawdziwa, gdy przeglądarka całkowicie otrzymała obraz (choć są tu pewne niuanse). Ponieważ ma to być kontrolowane przez przeglądarkę, odzwierciedlając status ładowania, naturalne jest, że właściwość jest zdefiniowana jako tylko do odczytu.
Ta właściwość jest szeroko obecna w przeglądarkach, ale widocznie w zepsuty sposób: jeśli masz element img
, który odwołuje się do nieistniejącego zasobu (404 Not Found), to Chrome i Firefox wskazują właściwość jako mającą wartość true (IE tutaj dostaje rzeczy: fałszywe). Więc własność na razie nie jest zbyt przydatna.
Ustawienie atrybutu w HTML nie ma na to wpływu. Atrybut HTML i właściwości obiektu elementu odpowiadają sobie nawzajem tylko wtedy, gdy zdefiniowano korespondencję.
Okazuje się, że IE popełniło błąd, przynajmniej [zgodnie ze specyfikacją] (http://www.w3.org/TR/html5/embedded-content-0.html#dom-img-complete). Powiedziałbym, że wszyscy się mylili - prosta boolean to za mało. Potrzebujemy czegoś bardziej solidnego, jak status, np. Załadowanego, ładującego, nie znalezionego, nieprawidłowego formatu itp. – gilly3
Czy warto podkreślić, że jest to niestandardowy znacznik, i że jest on dodawany przez niektóre javascript (prawdopodobnie w module obsługi obrazu) zamiast samej przeglądarki? – enhzflep
@Zaffy Pewnie, ale ma on własne problemy. – alex
Dziękujemy za informacje! – user1323246