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>';
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>';
Puede utilizar el controlador onerror. En la forma en línea, que se ve así:
<img src="someimage.jpg" onerror="this.style.display='none';" />
Hola Piskvor, muchas gracias. Lo intenté y me devolvió los errores: if (item.image) historyHtml + = ''; – jprim
@jprim: "errors" es molestamente vago. ¿Qué pasa exactamente cuando pruebas esto? – spender
@jprim: No está escapando las cotizaciones correctamente. Intente esto: if (item.image) historyHtml + = '' – spender
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>
definir la "imagen rota"? No entiendo. –
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