Javascript проверить, действительно ли img src?

У меня есть что-то вроде:

document.getElementById('MyPicture').src = 'attempted.png';

Если клиент не может получить этот ресурс, я бы хотел его заменить:

document.getElementById('MyPicture').src = 'error.png'

Я знаю, что могу поместить onError = function() в тег изображения, но как я могу передать Id в onError, так что у меня может быть одна функция onError, которая может изменить src любых плохих фото?

Ответ 1

Да, вы можете использовать событие onerror, на элементах изображения действительно широко поддерживается, например:

var image = document.getElementById('MyPicture');
image.onerror = function () {
  alert('error loading ' + this.src);
  this.src = 'error.png'; // place your error.png image instead
};

image.src = 'non-existing.jpg';

Посмотрите пример здесь.

Ответ 2

Поместите это в тег изображения:

onError="image_error(this.id)"

который передает идентификатор изображения функции image_error.... duh

Ответ 3

Добавление атрибута onError действительно является правильным способом его обработки. В вашем случае вы добавите что-то вроде:

var myPicture = document.getElementById('MyPicture');
myPicture.onError = errorHandler();

function errorHandler(msg,file_loc,line_num) {
  myPicture.src = 'http://www.google.com/intl/en_ALL/images/srpr/logo1w.png';
}