2012-01-04 53 views
3

HTML <img>元素具有布爾型complete屬性,如果圖像已成功加載(或者尚未分配src),則該屬性爲true。它還有一個onload事件,該事件在映像成功加載時觸發,事件在事件發生時加載(例如,由於鏈接斷開,圖像損壞或脫機網絡)導致圖像加載失敗。現在JavaScript:是否有失敗的圖像請求的錯誤屬性?

...我想知道的是,如果有是表示圖像具有已經加載失敗圖像元素上的屬性。假設我不能使用onerror事件,因爲腳本可能只有在事件觸發後才能訪問圖像。我們正在尋找的是一個簡單的布爾查找屬性,如complete,它表示「此映像的加載已嘗試,並且失敗」。 (我沒有在規範中看到,但我想知道我是否錯過了某些東西)。

回答

2

在幾乎所有瀏覽器(IE8及以下版本不支持此屬性)下,您都可以使用naturalWidthnaturalHeight獲得類似效果。在通過HTML/CSS屬性/樣式進行修改之前,naturalXX屬性包含圖像的原始高度/寬度。所以如果naturalWidth == 0,你知道圖像加載失敗。

(請注意,您不能使用標準widthheight性能,因爲這些將返回NOTFOUND佔位符圖像的大小。)

document.getElementById("image").naturalWidth ? "success" : "fail" 

如果你只是試圖改變未找到佔位符圖像,有一個nifty HTML solution for that

<object data="https://stackoverflow.com/does-not-exist.png"> 
    <img src="https://stackoverflow.com/content/img/so/logo.png"> 
</object> 

小提琴:http://jsfiddle.net/K3dwX/1/

PS:Potential solution for IE6+

+0

謝謝@primatology – Premasagar 2012-01-05 18:51:31

+0

我的榮幸@Pre :) – benesch 2012-01-05 22:47:08

相關問題