2012-10-02 64 views
8

任何人都可以解釋屬性complete的含義嗎?HTML img屬性「完整」

我在某處讀到它可能與DOM有關的內容。

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

回答

6

它在圖像下載完成時設置。

我從來沒有在HTML中明確地看到過它(如MDN表示它不是img元素的屬性)。我只是用來檢查圖像是否已經用JavaScript下載(然而,這存在跨瀏覽器問題)。 HTMLImageElement上的財產返回Boolean

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

是否值得指出它是一個非標準的標籤,並且它是由一些JavaScript(可能在圖像的onload處理程序中)而不是瀏覽器本身添加的? – enhzflep

+0

@Zaffy當然,但它有它自己的問題。 – alex

+0

謝謝您的信息! – user1323246

0

它用於檢查圖像是否已完成加載。

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

如果加載完成則返回true,否則返回false。 但是,它不會像您的示例中那樣用作屬性。

10

屬性complete沒有規定的含義,它可能沒有效果(雖然它可以用getAttribute()方法讀取)。所以這個問題中的代碼可能是基於一些誤解。

根據HTML5匯票,存在用於相應的img元件,具體根據HTMLImageElement接口的對象的complete屬性definition of the complete property基本上意味着當瀏覽器完全接收圖像時該值爲true(儘管這裏有一些細微差別)。由於這是由瀏覽器控制的,反映了加載狀態,所以該屬性被定義爲只讀是自然的。

此屬性廣泛存在於瀏覽器中,但顯然是以破碎的方式:如果您的img元素引用了不存在的資源(404 Not Found),則Chrome和Firefox會將該屬性指定爲true(IE在這裏得到的東西:假)。所以該物業暫時沒有多大用處。

在HTML中設置屬性對此沒有影響。僅當定義了對應關係時,HTML屬性和元素對象屬性才相互對應。

+3

原來,IE錯了,至少[根據規範](http://www.w3.org/TR/html5/embedded-content-0.html#dom-img-complete)。我會說每個人都錯了 - 一個簡單的布爾值是不夠的。我們需要更穩健的狀態,例如加載,加載,未找到,無效格式等。 – gilly3