Изменить путь у изображений которые не загрузились. JS
Подскажите пожалуйста, где ошибка в скрипте?
function imgResize(){
$(".search-img img").each(function() {
var image = this;
image.onerror = function() {
var src_img = this.src;
if(src_img.indexOf("/1/") !== -1){
var nesrc = src_img.replace("/1/", "/2/");
this.src = nesrc;
} else if(src_img.indexOf("/2/") !== -1){
var nesrc = src_img.replace("/2/", "/1/");
this.src = nesrc;
}
}
})
}
Логика такая - Ищем изображения с ошибкой 404, и меняем у них путь с /1/ на /2/ и наоборот. nesrc - корректно исправляет, но не срабатывает this.src = nesrc почему то
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
но не срабатывает this.src = nesrc почему то
Потому что не надо смешивать атрибут src и свойство src.
image.onerror = function() {
var src = this.src;
...
this.src = nesrc;
}
Автор решения: DiD
→ Ссылка
В опубликованной части вашего скрипта явных ошибок я не вижу. Возможно, ошибка кроется в какой-то другой части скрипта. Если картинка не хочет загружаться по смене src после ошибки загрузки, то стоит попробовать заменить тег <img> другой картинкой, которая еще не загружалась. Как-то так:
var image = this;
image.onerror = function() {
var newImg = new Image();
newImg.src = this.src.replace("/1/", "/2/");
this.replaceWith(newImg);
}