2010-09-09 22 views
14

tengo mi imagen dentro de una sentencia if:¿Cómo puedo ocultar imágenes rotas en javascript?

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

definir la "imagen rota"? No entiendo. –

+0

Si el item.image es de una URL rota. Por ejemplo, cuando muestra la lectura X: http://img807.imageshack.us/img807/8431/brokenimage.png – jprim

Respuesta

33

Puede utilizar el controlador onerror. En la forma en línea, que se ve así:

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

Hola Piskvor, muchas gracias. Lo intenté y me devolvió los errores: if (item.image) historyHtml + = ''; – jprim

+2

@jprim: "errors" es molestamente vago. ¿Qué pasa exactamente cuando pruebas esto? – spender

+3

@jprim: No está escapando las cotizaciones correctamente. Intente esto: if (item.image) historyHtml + = '' – spender

8

Como @piskvor dice, en realidad cargar la imagen en una etiqueta img es la única manera de descubrir si la URL está roto o no. El evento error se activa si falla la carga.

Pero al mirar su código, tal vez el enfoque opuesto tenga más sentido: Ocultar el <a> de manera predeterminada, y muéstrelo en el evento onload de la imagen.

abreviado:

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

Hola Pekka, gracias por tu ayuda. Si pongo ese fragmento de código en el enlace, todavía me da errores. – jprim

+1

@jprim * ¿qué * errores? –

+0

Error de sintaxis en Dreamweaver durante el desarrollo. Lo obtuve de Spender a continuación. Gracias. – jprim

Cuestiones relacionadas