Как скрыть испорченные изображения в JavaScript?

У меня есть свое изображение внутри оператора if:

if (item.image)
   historyHtml += '<a href=' + item.image + ' class="image" target="_blank"><img src="' + item.image +'" width="111px"/></a>';

2 ответа

Решение

Вы можете использовать обработчик ошибки. В встроенном виде это выглядит так:

<img src="someimage.jpg" onerror="this.style.display='none';" />

Как говорит @piskvor, загрузка изображения в тег img - это единственный способ узнать, не поврежден ли URL. error событие запускается, если загрузка не удалась.

Но, глядя на ваш код, возможно, имеет смысл использовать противоположный подход: скрыть <a> по умолчанию, и показать его в onload событие изображения.

Сокращенный:

<a href=".." id="image228" style="display: none">
 <img src="..." onload="this.parentNode.style.display = 'block'">
</a>
Другие вопросы по тегам