2016-05-31 7 views
0

したがって、次のjs img varがあります。JS imgが見つからないかどうかを確認します。

//Where `img_src` is another variable which actual image file MIGHT or MIGHT NOT exist. 
var img_source = "/images/" + img_src; 
return '<img src="' + img_source + '">';  

img_srcは、時には私が404 Not Foundエラーを取得しています、使用できない場合がありますので。

画像がない場合、別の機能を実行したいと思います。

この場合、画像ファイルが利用可能かどうかを確認するにはどうすればよいですか?

画像が利用できない場合は、img属性をすべて表示しないようにしています。ありがとう!

+0

可能な重複:http://stackoverflow.com/questions/9022427/see-if-src-of-img-exists – Kelvin

答えて

2

jQueryの方法はerrorイベントに耳を傾けるようになります:純粋なJavaScriptで

var img = $("<img src='http://no-image.com/' />"); 

img.on('load', function(e){ 
    alert('Success!'); 
}).on('error', function(e) { 
    alert('ERROR!'); 
}); 

img.appendTo("body"); 

https://jsfiddle.net/j70oybvy/

var img = document.createElement('img'); 

img.src='http://no-image.com/'; 

img.onload = function(e){ 
    alert('Success!'); 
}; 

img.onerror = function(e) { 
    alert('ERROR!'); 
}; 

document.body.appendChild(img); 

https://jsfiddle.net/j70oybvy/1/

+0

これは、イメージの 'src'属性を動的に変更すると、ハンドラが再び呼び出されるということです。 – rcdmk

+0

これはかなり良いです。ありがとう。 ☺ –

1

このようにフォールバックimgを使用できます。

<img onerror="this.onerror=null; this.src='img/fallback.png'" /> 

要素を非表示にするには、次のようにします。

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

返信いただきありがとうございます。イメージが利用できない場合は、img属性をすべて表示することを避けようとしています。ありがとう! –

+0

@steveKim私の更新答えを見つけてください:) – Mark

+0

ハハ。あなたが正しいです。私はそれをすることができた。愚かな私。ありがとうございました。 ☺️ –

関連する問題