2013-03-27 67 views
0

場景:ALT屬性

<img src="filepath" alt="image not found"> 

這將確保,如果文件沒有路徑,則文本會被加載發現.....

問題: 而不是一個替代文字可以加載圖像?是否有任何標籤將隨時爲我的目的,是否有任何自定義JavaScript函數可以在#alt標籤?

+0

圖像無法被加載。 (你有什麼保證,那*圖像將被發現和加載?你想爲alt圖像設置一個alt圖像嗎?等等) – sevenseacat 2013-03-27 12:50:32

+1

請注意'alt'屬性基本上是一個輔助功能。在無法顯示圖像的環境下(例如屏幕閱讀器),另一個圖像不能取代。我建議你使用該屬性來達到預期目的(如果適用,請提供圖片的簡要說明,其中「未找到圖片」不是),並找到另一種方法來檢測丟失的圖片。 – 2013-03-27 12:56:44

+0

請參考http://stackoverflow.com/questions/3984287/how-to-show-alternate-image-if-source-image-is-not-found-onerror-working-in-ie – AmGates 2013-03-27 12:58:28

回答

0

有一個特殊的事件,讓你做到這一點。它是:

<img src="" onerror="this.src='path/to/default'" /> 
+0

請參閱[onerror事件](http://www.w3schools.com/jsref/event_img_onerror.asp) – JoDev 2013-03-27 12:59:06

+0

'可以使用此..如何使用它在內部的HTML? – Raghu 2013-03-28 04:24:41

2

您可以檢查圖像中的JavaScript加載:

var img = document.getElementById('image'); 
if (img.complete && img.naturalWidth == 0) { 
    // some error, load alternate image: 
    img.src = "path to alternative img"; 
} 

編輯:完整的解決方案(使用onerror從@ JoDev的答案)是:

<script> 
function validate (img) { 
    // Clear the callback to avoid infinite loop in case 
    // new image path would be also invalid. 
    img.onerror = null; 

    if (img.complete && img.naturalWidth == 0) { 
    // some error, load alternate image: 
    img.src = "http://example.com/valid_path.png"; 
    } 
} 
</script> 

<img onerror="javascript:validate(this);" 
    src="http://example.com/some_invalid_path.png"/> 
+0

+1我沒有知道這部分:'img.naturalWidth == 0' – JoDev 2013-03-28 08:46:12