2011-10-20 74 views

回答

6

通常你需要把這個在負載事件偵聽器,像這樣:

var img = new Image(); 
img.onload = function(){ 
    alert(this.src + " loaded"); 
} 
img.src="http://example.com/images/a.png"; 
+0

是新畫面(),有必要嗎?如果是 - 爲什麼?如果它不是 - 爲什麼? –

+0

@MorSela是的,這是必要的。您必須創建一個新的圖像對象,但此時不加載任何內容。一旦你給它一個源,它就開始加載。如果你只是分配url,js會假設你只想要一個字符串而不是圖像。 –

+0

將onload函數移至src屬性設置的上方 - 緩存的圖像可能會在onload事件處理程序設置之前立即觸發onload。 – Greg

0

如果您正在將圖片加載到html標記中,您可以使用onerror事件。例如:

<img src="https://otherdomain.com/img.jpg" onerror="handleImgError();" />

如果handleImgError()運行,那麼你知道,圖像沒有被正確加載。

+0

如果我不能在乾淨的js中做類似的事情? –

+0

您可以使用Joseph答案中提到的Image對象,並使用'img.complete',它返回布爾值 - 如果瀏覽器已經完成下載圖像,則爲true。你也可以使用'onerror()'方法,它與上面顯示的HTML非常相似。 – smfoote