JScript: Как я могу выдать сообщение об ошибке, когда изображение не загружено?

0

У меня есть функция загрузчика изображений, которая вызывает функцию, когда загружаются все изображения, независимо от того, сколько я загружаю. Но в настоящее время он терпит неудачу, когда имя файла src изображения недопустимо, поскольку onload не вызывается.

Как я могу отправить сообщение об ошибке, если изображение не загружено?

loadImage: function(image, id, fn) {

   var bgImg = new Image(),
   self = this;

   // counting images currently loaded
   this._loadingImages++;

   // set image source and onload callback 
   bgImg.src = image;   
   bgImg.onload = function() {
    fn(image, id);
    self._loadingImages--;
           if( self._loadingImages === 0 ) self.imagesLoaded(); 
   }
},
Показать ещё 3 комментария
Теги:
image
onload

3 ответа

2
Лучший ответ
loadImage: function (image, id, fn) {

    var bgImg = new Image(),
        self = this;

    // counting images currently loaded
    this._loadingImages++;

    // set image source and onload callback 
    bgImg.src = image;
    bgImg.onerror = function () {
        // your error code
    }
    bgImg.onload = function () {
        fn(image, id);
        self._loadingImages--;
        if (self._loadingImages === 0) {
            self.imagesLoaded();
        }
    }
};

Это должно сработать.

  • 0
    Это не сработало. Но bmImg.onerror () работал.
  • 0
    @ Майкл ладно обновил это :)
1

Эта тема может помочь вам: проверить, загружено ли изображение (без ошибок) в JavaScript

Я думаю, с помощью jQuery вы можете добиться такого ответа на ссылку, которую я скопировал ниже:

$("<img/>")
    .load(function() { console.log("image loaded correctly"); })
    .error(function() { console.log("error loading image"); })
    .attr("src", $(originalImage).attr("src"))
;
  • 0
    Я не могу использовать объект jQuery там.
0

Благодаря t.niese, это мое решение:

loadImage: function(image, id, fn) {

   var bgImg = new Image(),
   self = this;

   // counting images currently loaded
   this._loadingImages++;

   // set error and onload callback and then image source
   bgImg.onerror = function() {
       throw new Error( "ERROR" );
   };
   bgImg.onload = function() {
       fn(image, id);
       self._loadingImages--;
       if( self._loadingImages === 0 ) self.imagesLoaded(); 
   }
   bgImg.src = image;   
},

Ещё вопросы

Сообщество Overcoder
Наверх
Меню