2011-08-05 127 views
0

如果找不到圖像,有沒有辦法顯示圖像佔位符?我有通過自動Feed加載的圖像,對於某些項目圖像在那裏,但對於一些項目沒有。所以,如果圖像不存在,我想顯示佔位符。如果未找到圖像,javascript不顯示圖像佔位符

謝謝

^h

+0

這真的取決於你如何通過JavaScript加載圖像。例如,如果您使用從服務器返回的JSON數據,則可以檢查圖像url是否爲空,並將其設置爲另一個「已知」(默認)url。 –

回答

1

我找到了答案here

這段代碼的偉大工程!

function onImgErrorSmall(source) 
{ 
source.src = "/images/no-image-100px.gif"; 
// disable onerror to prevent endless loop 
source.onerror = ""; 
return true; 
} 

然後調用它像這樣:

<img src="/images/19013_small.jpg" alt="" onerror="onImgErrorSmall(this)" /> 
+0

或者你可以做一個$(源).remove()來避免這個其他圖像的額外http請求 –

0

試試這個:如果圖像存在

var tester=new Image() 
    tester.onload=function() {createPlaceHolderForImage(); } 
    tester.onerror=function() {handleError(); } 
    tester.src="http://www.temp.com/image.jpg" 

的onload函數被調用,否則的HandleError是使用jQuery的一個樣本稱爲

+0

不確定哪種形式的Feed正在使用,但只需確保在嘗試加載之前將錯誤事件附加到圖像。如果在後端完成集成,則可能需要將src URL包含在「src」以外的屬性中。然後,通過JS,您可以附加錯誤事件,然後將src url插入到src屬性中。祝你好運! :) – Dygerati

+0

這只是示例代碼來演示如何解決這個問題。我不是說這是最好的方法:P – blejzz

0

這裏,這也可以在JavaScript中完成:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("img").each(function(){ 
     var imgObj = $(this); 
     var img = new Image(); 
     img.onerror=function(){ imgObj.attr('src','placeholder.gif'); } 
     img.src = imgObj.attr('src'); 
    }); 
}); 
</script> 
<ul> 
<li><img src="blah.gif" /></li> 
<li><img src="blah.png" /></li> 
<li><img src="http://www.google.com/intl/en_com/images/srpr/logo2w.png" /></li> 
</ul> 

該代碼將遍歷每個圖像並檢查它是否存在。如果它不存在,則將其替換爲「placeholder.gif」圖像。

+0

我似乎目前正在編輯帖子,但您可以在http://jsfiddle.net/Z7EbP/ – RobB

+0

上看到一個工作示例。謝謝。雖然我不允許使用jQuery。 –

相關問題