Привет, я создал немного кода для замены изображений с их версиями с более высоким разрешением. Похоже, это
$("img[src*='.jpg']").each(function(){
$(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg'));
});
Который только ищет все изображения и заменяет имя файла.
Иногда, несмотря на то, что для изображения с высоким разрешением не задано имя файла 'highres.jpg'
То, что я хотел бы сделать, это если highres.jpg существует, отобразите его. иначе просто отобразите оригинал.
Вот что я пробовал:
$("img[src*='.jpg']").each(function(){
var replaceImage = function() {
$(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg'));
};
if (replaceImage > -1) {
replaceImage;
};
});
Довольно уверен, что я хватаюсь за соломинку здесь и там, лучший способ сделать это... потому что это не работает :)
Здесь прямое выполнение этого ответа:
$("img[src*='.jpg']").each(function(){
var imgSrc = $(this).attr('src'); // The original src
var highresSrc = imgSrc.replace('.jpg','.highres.jpg'); // High res src
var img = new Image();
img.onerror = function() { // In case of error, revert to original
img = new Image();
img.src = imgSrc;
};
/*
img.onload = function() {
// Image has loaded successfully. Do something if you want.
...
};
*/
img.src = highresImg; // Try loading highres
});