Как скрыть сломанные изображения в javascript?

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

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

Ответ 1

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

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

Ответ 2

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

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

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

<a href=".." id="image228" style="display: none">
 <img src="..." onload="this.parentNode.style.display = 'block'">
</a>