0

jQuery を使用してページの背景画像を設定すると、次のようになります。

$('body').css({
    "background-image": 'url(' + myImageUrl + ')'
});

画像 URL から返される可能性のある HTTP エラー (500、503、404 など) を検出して処理するにはどうすればよいですか?

コールバックを登録する jQuery.error()メソッドを見つけましたが、1.8 で非推奨としてマークされており、それを置き換えるものは示されていません。(非推奨であろうとなかろうと、私はそれを機能させることができないようです。)


以下のコメントと回答に基づいて、このバリエーションを試してみましたが、うまくいくようですが、回答は反対票を獲得しています。これが悪い理由はありますか?

$('<img>').error(function(obj) {
    alert('error');
}).load(function() {
    $('body').css({
        "background-image": 'url(' + myImageUrl + ')'
    });
}).attr('src', myImageUrl);
4

1 に答える 1

0

これを試して

jQuery

Live Demo

var $image = $("<img />");
$image.on("error",function() { 
  $('body').css({
    "background-image": 'url(defaultimage.jpg)'
  });
}).on("load",function() {
  $('body').css({
    "background-image": 'url(' + myImageUrl + ')'
  });
}).attr("src",myImageUrl);

JavaScript:

var image = new Image();
image.onerror=function() { 
  document.body.style.backgroundImage="url(defaultimage.jpg)"
}
image.onload=function() {
  document.body.style.backgroundImage="url("+myImageUrl+")"
}
image.src=myImageUrl;
于 2013-09-03T13:29:34.510 に答える