2010-09-09 71 views
14

我有內部的圖像if語句:如何在JavaScript中隱藏破碎的圖像?

if (item.image) 
    historyHtml += '<a href=' + item.image + ' class="image" target="_blank"><img src="' + item.image +'" width="111px"/></a>'; 
+1

定義 「破碎的形象」?我不明白。 – 2010-09-09 08:52:10

+0

如果item.image來自破損的網址。例如,當它顯示讀取X:http://img807.imageshack.us/img807/8431/brokenimage.png – jprim 2010-09-09 08:56:00

回答

33

您可以使用onerror處理程序。在內嵌的形式,它看起來像這樣:

<img src="someimage.jpg" onerror="this.style.display='none';" /> 
+0

嗨Piskvor,非常感謝。我試過,它通過我回錯誤:if(item.image)historyHtml + =''; – jprim 2010-09-09 08:57:36

+2

@jprim:「錯誤」令人討厭地模糊。當你嘗試這個時會發生什麼? – spender 2010-09-09 08:58:48

+3

@jprim:你沒有正確地轉義引號。試試這個:if(item.image)historyHtml + ='' – spender 2010-09-09 09:00:51

8

由於@piskvor說,在一個img標籤實際加載圖像找出URL是否損壞與否的唯一途徑。如果加載失敗,則會觸發error事件。

但是看着你的代碼,也許相反的方法是最有意義的:默認情況下隱藏<a>,並顯示在圖像的onload事件中。

刪節:

<a href=".." id="image228" style="display: none"> 
<img src="..." onload="this.parentNode.style.display = 'block'"> 
</a> 
+0

嗨佩卡,謝謝你的幫助。如果我把這段代碼放在鏈接中,它仍然會給我帶來錯誤。 – jprim 2010-09-09 09:00:00

+1

@jprim *什麼*錯誤? – 2010-09-09 09:00:50

+0

開發時,Dreamweaver中的語法錯誤。我從下面的Spender那裏得到它。謝謝。 – jprim 2010-09-09 09:05:04