6

壊れた画像を検出する例を次に示します
http://maisonbisson.com/blog/post/12150/detecting-broken-images-in-javascript/

しかし、壊れた背景画像を検出することは可能ですか?
例:

<div style="background-image:url('http://myimage.de/image.png');"></div>
4

2 に答える 2

5

リンクが壊れているかどうかを伝えるために 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

于 2012-10-22T09:32:12.167 に答える
1

サーバーの「404 not found」ページを制御できますか? その場合、要求された URL で .jpg/.png/.gif を探してそれに応じてログを記録し、404 ページをユーザーに出力するスクリプトを指すことができます。

于 2012-10-22T13:39:55.460 に答える