Foros del Web » Programando para Internet » Javascript »

Onload para validar una url váilda de imagen

Estas en el tema de Onload para validar una url váilda de imagen en el foro de Javascript en Foros del Web. Hola a todos!! Tengo una pantalla de estilo pop up. En ella hay un único campo que solicita una url válida de una imagen. Al ...
  #1 (permalink)  
Antiguo 12/02/2011, 05:59
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Onload para validar una url váilda de imagen

Hola a todos!! Tengo una pantalla de estilo pop up. En ella hay un único campo que solicita una url válida de una imagen. Al aceptar, en Javascript, hago lo siguiente:

var imagen = new Image();

imagen.src = document.frm.txt_url.value;

imagen.onerror = function() { alert('Debe proporcionar una URL válida'); }
imagen.onload = function() { window.close(); }

Es decir, asigno la imagen a la variable imagen. Y después miro si hay error, es decir la url no es válida. O bien, si es capaz de cargarla. Si es así, cierra la ventana.

Y me pasa algo curioso. La primera vez que le doy al botón, no hace nada, pero la segunda, ya funciona correctamente... ¿Qué es, por que la primera vez que clico, la imagen no llega a cargarse en la variable y por eso no me pasa ni por el "onerror" ni por el "onload"? Eso explicaría que la segunda vez sí que fuese bien. Entonces, qué me aconsejáis, que haga un submit, y en el onload del body haga esta validación?? Lo más curioso es que esto funcionaba perfectamente, y no sé que puñetas habré tocado para que ahora haya dejado de funcionar...

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 12/02/2011, 06:34
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Onload para validar una url váilda de imagen

Vale, he conseguido que funcione. Pero, por favor, estaría bien que alguien me pudiese decir si lo que hago es correcto o una locura! Soy un novato en temas web, y eso de "trastear" con tecnologías que no controlo no me gusta mucho... Os cuento, al aceptar la url hago lo siguiente:
1- hago un submit
2- al recargar la pantalla, en el onload en el body, hago una llamada una función ( f_carga )
3- esta funcion ( evidentemente mira si viene del refresco originado por el botón de aceptar la url ) lo que hace es:

var imagen = new Image();

imagen.src = $_POST["txt_url"];

imagen.onerror = function() { alert('Debe proporcionar una URL válida'); }
imagen.onload = function() { window.close(); }

Es decir, ahora, en lugar de cargar la imagen en la variable, para su posterior análisis ( onerror => url erronea, onload => url válida ) en el javasacript del botón "Aceptar", lo hago en el onload del body. Así pues el botón "Aceptar" hace un simple submit. Alguien podría explicarme por que ahora sí que funciona?? He leído que el onload del body se ejecuta una vez se ha cargado la página entera... ¿Incluye eso la imagen que asigno en la función f_carga? Si es así, entiendo que funcione. Es que sino... que diferencia hay en llamar a la función f_carga en el onload del body, o en el código javascript que genero al pulsar sobre el botón de "Aceptar"??

Ok, ya me funciona. Pero eso que vaya y no sepa por que, no me gusta nada. Si alguien me lo puede aclarar...

Nuevamente muchas gracias por vuestro tiempo.
  #3 (permalink)  
Antiguo 12/02/2011, 08:36
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Onload para validar una url váilda de imagen

Esto me funciona en Chrome y en FF:
Código HTML:
Ver original
  1. <input type='text' id='t' />
  2. <input type='button' onclick='comp()' value='comprobar' />
Código Javascript:
Ver original
  1. function comp(){
  2. var img = new Image();
  3. img.src = document.getElementById('t').value;
  4. img.onerror=function(){ alert('error'); }
  5. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #4 (permalink)  
Antiguo 16/02/2011, 17:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Onload para validar una url váilda de imagen

Hola. Bueno, a mi, según sea la imagen no me funciona. Supono que es por lo que comentaba... En cambio si ese código lo pongo en el onload del body me funciona siempre. Sólo quería saber si tiene lógica esto... Bueno, es sólo por curiosidad, eh...

Etiquetas: onload, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:30.