У меня есть функция загрузчика изображений, которая вызывает функцию, когда загружаются все изображения, независимо от того, сколько я загружаю. Но в настоящее время он терпит неудачу, когда имя файла 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();
}
},
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();
}
}
};
Это должно сработать.
Эта тема может помочь вам: проверить, загружено ли изображение (без ошибок) в JavaScript
Я думаю, с помощью jQuery вы можете добиться такого ответа на ссылку, которую я скопировал ниже:
$("<img/>")
.load(function() { console.log("image loaded correctly"); })
.error(function() { console.log("error loading image"); })
.attr("src", $(originalImage).attr("src"))
;
Благодаря 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;
},
.error()
это вы хотите?