2010-09-19 102 views
5

Al enviar un formulario, quiero asegurarme de que un campo sea una URL de imagen válida.¿Cómo puedo comprobar si una URL es una imagen válida (en javascript)?

Podría hacer un punto final AJAX en mi servidor que CURL la URL y analiza el resultado con una biblioteca de imágenes, pero eso se siente un poco exagerado.

¿Podría salirse con la suya haciendo un elemento <img> y luego verificar de forma síncrona la respuesta de alguna manera?

+0

Estoy seguro de que esto es una víctima ... déjame ver si puedo desenterrarlo ... –

Respuesta

12

Puede hacer un elemento <img> y manejar sus eventos onerror y .

Si el evento load se activa, es una imagen válida; si se desencadena el evento error, no lo es.
Esto incluso funciona en todos los dominios.

+0

son los garantizados para disparar en el momento oportuno (en todos los navegadores importantes)? ¿Tendré que hacer un poco de lógica de tiempo de espera para mí? –

+0

@Paul: Debería funcionar bien; intentalo. – SLaks

+0

No pude obtener los eventos onerror o onload para disparar una etiqueta img. Según w3schools, estos eventos no son compatibles. http://www.w3schools.com/tags/tag_img.asp – eivers88

4

Haga esto, el siguiente código reemplazará cualquier imagen que no tenga una imagen predeterminada.

<img src="xx" onerror="this.src = '/images/default.png'"> 
+0

Esto funciona bien - un pequeño error de gramática - le falta una comilla doble - que voy a editar para tú. – JoseBazBaz

Cuestiones relacionadas