2015-04-02 77 views

回答

0

我已經看到了這個作爲一個選項...

<img src="foo.jpg" onerror="if (this.src != 'error.jpg') this.src = 'error.jpg';"> 

這也可以觸發一個函數。

您也可以嘗試這樣的事情...

<object data="http://stackoverflow.com/does-not-exist.png" type="image/png"> 
    <img src="http://stackoverflow.com/content/img/so/logo.png" /> 
</object> 

因爲第一圖像不存在,回退(堆棧溢出標誌)會顯示。如果您使用的是不支持對象的舊瀏覽器,它將忽略該標籤並使用img標籤。

UPDATE

使用映像路徑(URL),嘗試這樣的事情......

http://perishablepress.com/3-ways-preload-images-css-javascript-ajax/

通過AJAX預加載可能會給出一個答案,那麼你可以使用成功/錯誤處理。

+0

但是從URL完全不是HTML代碼 – user1937021 2015-04-02 15:19:28

+0

查看更新... – rfornal 2015-04-02 15:22:33

1

使用onerror處理程序。然而,觸發錯誤之前,必須連接,所以你要以後設置src屬性:

$("img").error(function(){ 
    $(this).hide(); 
}).attr('src', 'http://www.domain.com/img/slide1.jpg'); 

https://api.jquery.com/error/

+0

從他們的文檔中:在瀏覽器觸發錯誤事件之前,必須附加事件處理程序,這就是爲什麼示例在附加處理程序後設置src屬性的原因。此外,當頁面在本地服務時,錯誤事件可能無法正確觸發;錯誤依賴於HTTP狀態代碼,如果URL使用file:協議,通常不會被觸發。 – rfornal 2015-04-02 15:24:09

+0

實際上,它在用於本地文件時似乎適用於Chrome。 – riv 2015-04-02 15:29:55

+0

我剛剛發佈了文檔以使答案完整。有些瀏覽器有類似的問題,有些瀏覽器卻不這樣(Chrome似乎常常做得不好)。 – rfornal 2015-04-02 15:31:19