2011-09-16 44 views
1

我試圖實現以下的圖像:曹景偉不被添加到DOM樹的IMG的onerror的處理程序

我加載可能會或可能不會存在於服務器上的圖像。 當圖像不存在時,會觸發圖像onerror處理程序。 我想要做的是從dom樹中刪除圖像(而不是使破碎的圖像圖標出現)。

如下:

onerror="this.parentElement.removeChild(this);" 

在Chrome而不是Firefox的作​​品。其原因是該圖像尚未附加到domtree(parentElement爲空)。

我也曾嘗試在服務器上的SRC屬性設置爲一些透明的形象,但後來我的onload evenhandler被稱爲eventhough我設置:

onerror="this.onload=null;this.src='transparentimage';" 

有沒有達到我想要的東西的另一種方式?

想不出來!

任何briliant的想法?

最好的問候,

尼克拉斯

回答

1

一個簡單的解決了這個問題:

<img src="imageURL" style="display:none" onload="this.style.display='block'"/> 

也許這將幫助別人。 。

+0

我不知道這是否適用於簡單的香草JavaScript加載事件,但jQuery文檔說它的.load()不可靠(http://api.jquery.com/load-event/)。所以最好使用onerror來代替。樣式設置爲「display:block」並將錯誤設置爲none。 – mhenry1384

0

下面介紹如何用jQuery做到這一點:
$( 「IMG」)錯誤(函數(){$ (這)一個.remove(); });

請注意,對於IE,您應該在HTML中的項目之後設置錯誤處理程序。如果你在document.ready()上做它,它將不會觸發。