Различные браузеры (неправильно) обрабатывают это по-разному. Использование заголовка (старый стандарт IE) не особенно уместно, поскольку атрибут заголовка является эффектом наведения мыши. Представленное выше решение jQuery (Алексис) кажется правильным, но я не думаю, что «ошибка» возникает в той точке, где ее можно поймать. Я добился успеха, заменив src на себя, а затем перехватил сообщение об ошибке:
$('img').each(function()
{
$(this).error(function()
{
$(this).replaceWith(this.alt);
}).attr('src',$(this).prop('src'));
});
Это, как и во вкладе Алексис, имеет преимущество удаления отсутствующего изображения img.