jQueryで画像のロードするときに、画像images/test2.jpgが存在しないときにalert("エラー")をやりたいのですが、images/test2.jpgの存在チェックってどうするか教えてください。

//画像URL
var url="images/test2.jpg";
//imgPreloaderオブジェクトを作る、名前は任意
var imgPreloader=new Image();
//onloadイベントハンドラ追加
imgPreloader.onload=function() {
//ロード完了で画像を表示
$("#image-box").children("img").attr({'src':url});
}
//重要、最後に書く
imgPreloader.src=url;

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/05/05 22:05:05

回答0件)

回答はまだありません

  • id:jislotz
    imgPreloader.onerror = function() {
    alert('エラー');
    }
    厳密には存在するかしないかじゃなくて読み込めたかどうかだけど。
  • id:b-stat
    ありがとうございます。


    > 厳密には存在するかしないかじゃなくて読み込めたかどうかだけど。
    両者に違いはあるのでしょうか。
    存在しなくて読み込める、もしくは存在しているけど読み込めない、ということはございますか。
    ご教示頂けるとありがたいです。
  • id:jislotz
    存在しているけど読み込めないケースは沢山あるかと思います。

    こんなことをする人はほとんどいないと思いますが、確実に再現できる方法を一つ挙げますね。
    Firefoxの設定で画像を読み込まない設定にすれば、画像を読み込まずにonerrorのイベントが発動します。
    (アドレスバーにabout:configって入れて、permissions.default.imageの値を2にします。)
    もっといい例を挙げたかったですが、思いつかなかったので許してください。
  • id:b-stat
    ありがとうございます。
    確かにブラウザの設定で読み込めないということはありますね。
    存在しなくて読み込めるケースでは、ブラウザのキャッシュが利いている場合が該当するかと思いました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません