2010-09-09 2 views
14

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

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

Определение "сломанный образ"? Я не понимаю. –

+0

Если item.image из сломанного URL-адреса. Например, когда он показывает чтение X: http://img807.imageshack.us/img807/8431/brokenimage.png – jprim

ответ

33

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

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

Привет, Писвор, большое спасибо. Я пробовал это, и он меня перепутал с ошибками: if (item.image) historyHtml + = ''; – jprim

+2

@jprim: «ошибки» раздражающе расплывчаты. Что именно происходит, когда вы пытаетесь это сделать? – spender

+3

@jprim: Вы не избегаете кавычек правильно. Попробуйте следующее: if (item.image) historyHtml + = '' – spender

8

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

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

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

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

Привет, Пекка, спасибо за вашу помощь. Если я положу этот фрагмент кода в ссылку, он все равно даст мне ошибки. – jprim

+1

@jprim * какой * ошибки? –

+0

Ошибка синтаксиса в Dreamweaver при разработке. Я получил его от Спендера ниже. Благодарю. – jprim