У меня проблема с javascript. Я создаю веб-сайт, который общается с MovieDB-API, который иногда возвращает неработающие URL-адреса.
Есть ли способ определить, приведет ли URL, возвращаемый API, к пустой странице? Возможно, проверкой ретроактивно, если изображение по умолчанию было "alt" -attribute? Очевидно, что, пока отображается альт-текст, программа "знает" о том, что URL-адрес терпит неудачу.
Если URL-адрес поврежден, я хочу, чтобы переменная IMG была заменена на путь к локальному образцу по умолчанию.
CSS с включенным javascript
<img src="image.jpg" onerror="this.src='alternative.jpg';">
ИЛИ
JQuery
// Replace source
$('img').error(function(){
$(this).attr('src', 'missing.png');
});
// Or, hide them
$("img").error(function(){
$(this).hide();
});
редактировать
$(document).ready(function () {
$('img').error(function () {
$(this).addClass('noImg');
});
});
.noImg {
position: relative;
background: url() no-repeat center center; // or simple background color
height: 100px;
width: 100px;
content: "Your content";
margin: 0 10px 10px 0;
}
Вы можете использовать событие onerror
чтобы проверить URL-адрес и посмотреть, можно ли загрузить изображение.
var url = 'http://www.somesite.com/image.jpg';
var img = new Image();
img.onerror = function() {
console.log('image could not be loaded, setting default placeholder');
image_tag.src = '/my_default_placeholder.gif';
}
img.src = url;
без какого-либо опубликованного кода, это просто общий пример того, как он будет работать,
Вы можете попробовать выполнить запрос Ajax для каждого изображения. Если он действительно существует, он вернет успех. В противном случае это вызовет ошибку, и вы можете поместить нужное изображение в это место. jQuery Ajax snippet:
$.ajax({
type: "GET",
url: url_to_img,
success: function(result) {
console.log("SUCCESS");
$('#img-1234').attr('src', url);
},
error: function(result) {
console.log("ERROR");
// url broken
$('#img-1234').attr('src', '/img/noImg.png');
}
});
Надеюсь, поможет