壊れた画像を検出する例を次に示します
http://maisonbisson.com/blog/post/12150/detecting-broken-images-in-javascript/
しかし、壊れた背景画像を検出することは可能ですか?
例:
<div style="background-image:url('http://myimage.de/image.png');"></div>
壊れた画像を検出する例を次に示します
http://maisonbisson.com/blog/post/12150/detecting-broken-images-in-javascript/
しかし、壊れた背景画像を検出することは可能ですか?
例:
<div style="background-image:url('http://myimage.de/image.png');"></div>
リンクが壊れているかどうかを伝えるために jQuery や JavaScript が必要だとは思いません。Firefox で Firebug を使用すると、ほとんどの問題が解決されます。
https://addons.mozilla.org/en-us/firefox/addon/firebug/
編集: 自動修正用であることがわかったので、すぐに見て、これを思いつきました:
var imageURLs = $('div');
imageURLs.each(function(index, element){
var imageURL = $(element).css('background-image').replace('url("', '').replace('")', '');
if (imageURL != "none"){
$.ajax({
url: imageURL,
type: 'HEAD',
error: function(){
//error handling for broken image url
}
});
}
});
ロード後にページに追加すると、すべての div 要素がスキャンされ、破損した css 背景画像が検出されます。これを行うためのより良い、またはより迅速な方法があるかもしれませんが、これが一般的な考え方です。
編集 2:スクリプトをテストしたときに、.css('background-image') が画像の URL を囲む "url()" を含む文字列を返すことに気付きました。これにより、すべての URL で ajax 呼び出しが失敗しました。私はそれを変更し、CSS の背景を持つ要素のみで ajax 呼び出しを実行しました。上記のコードは完全に機能するようになりました。:D
サーバーの「404 not found」ページを制御できますか? その場合、要求された URL で .jpg/.png/.gif を探してそれに応じてログを記録し、404 ページをユーザーに出力するスクリプトを指すことができます。