Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2011, 19:04
webyg
 
Fecha de Ingreso: abril-2011
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
addEventListener para onload de imagen

Hola, primero decir que javascript no es que lo domine, vamos, soy un simple aficionado ;)

A ver si alguno me aclara algo sobre addEventListener aplicado a una imagen cuando acabe de cargar, porque me saca de mis casillas, ya que no me funciona. Y cada vez que leo algo más, me lío más aún, si es que es posible.

Para más inri, Gecko (Firefox, Seamonkey, etc), en algunas versiones, da errores porque no acepta variables de un array para addEventListener, dando un cariñoso error NS_ERROR_XPC_BAD_CONVERT y esto me ha vuelto loco media tarde. (Ejemplo: addEventListener('load',funcion_a_ejecutar(var[]),false);)

Bueno, pero a lo que voy, no soy capaz de hacerlo funcionar para capturar el evento onload, o de fin de carga, de una imagen. En vez de capturar el fin de carga de la imagen, captura la carga del documento. Igual es que tiene que funcionar así, pero dado que onload, aplicado a un elemento img, no está permitido en el estándar..., ya me diréis a ver qué hago.

Datos en mi html relacionados, los que siguen:

Código:
<body onload="crear_capturas_de_eventos();">
Esto lo hago porque como javascript se ejecuta antes que la carga de el html, no puede encontrar el elemento (null), así que los creo a partir de body onload, llamando a esta función:

Código:
function crear_capturas_de_eventos(){
var imgtest = document.getElementById('xxx').addEventListener('load',iloaded('valor'),false);
}
Pues bien, lo que ocurre aquí es que la función iloaded se ejecuta incluso aunque no cargue la imagen (supongamos que no encuentra esa imagen). Al parecer, cuando se carga el documento, es cuando salta la captura del evento onload.

Dicho de otra manera, en vez de aplicarlo al elemento con id xxx, que es la imagen a vigilar, está vigilando la carga del documento.

Por qué, ni idea. Se me ocurre alguna cosa.

Veamos, inicialmente, la imagen con id xxx, tiene de valor src, nada, es decir:
Código:
<img src="" id="xxx">
Y se le crea un valor src via javascript con otra función en body via onload, es decir, en realidad, el body onload es así:
Código:
<body onload="crea_src_imagenes(); crear_capturas_de_eventos();">
Esta función es así porque no puede tener un valor src fijo la imagen porque el src siempre es diferente. Además de que para ejecutar otras funciones, me baso en el valor dado que tenga el src en un momento x.

¿Podría ser el problema que las imágenes tengan src creados dinámicamente?

Si habéis hecho vosotros esto, dadme un ejemplo, porque, la verdad, me estoy volviendo loco y en el foro no lo he encontrado.

P.D.: ¿podría alguien explicar, para dummies, qué hace realmente el tercer parametro de addEventListener (buleano true/false)?