когда я помещаю тэг img, я динамически создаю атрибут src. Есть ли способ тестирования, если src (путь, где находится изображение) фактически существует с javascript, чтобы избежать получения:

когда я помещаю тэг img, я динамически создаю атрибут src. Есть ли способ тестирования, если src (путь, где находится изображение) фактически существует с javascript, чтобы избежать получения:

Вы можете использовать событие error:
var im = document.getElementById('imageID'); // or select based on classes
im.onerror = function(){
// image not found or change src like this as default image:
im.src = 'new path';
};
Встроенная версия:
<img src="whatever" onError="this.src = 'new default path'" />
или
<img src="whatever" onError="doSomething();" />
<img> поддерживает эти события:
abort (onAbort)error (onError)load (onLoad)Дополнительная информация:
вы можете сделать предыдущий вызов ajax (с помощью метода head) и посмотреть код возврата сервера
или вы можете использовать событие onerror для изменения URL-адреса или его скрытия, например.
<img src="notexist.jpg" onerror="this.style.visibility = 'hidden'">
(Я использовал встроенный атрибут, чтобы объяснить идею)
Если вы создаете src динамически с помощью javascript, вы можете использовать это:
var obj = new Image();
obj.src = "http://www.javatpoint.com/images/javascript/javascript_logo.png";
if (obj.complete) {
alert('worked');
} else {
alert('doesnt work');
} Вы приближаетесь к этому неправильно.
Когда вы создаете свои ссылки со стороны сервера script, проверьте, существует ли файл или нет (например, с помощью file_exists() в PHP).
Вы не должны полагаться на JavaScript, когда можете сделать это на стороне сервера, так как JavaScript может быть изменен и отключен.
Спросите себя, как вы генерируете атрибуты src= и проверяете, существует ли файл или нет, и укажите альтернативу.