|
El código Javascript incluido en una página web
pueden ejecutarse de tres maneras:
- En línea a medida que se carga la página
- Todo el código escrito fuera del ámbito
de una función se ejecuta según es leido
por el navegador. Este código no puede hacer
referencia a ningun elemento del documento sin
asegurarse que ese
elemento ha sido cargado.
- Por llamada directa desde otro script en funcionamiento
- En la página del documento pueden existir, encerrados
en sus etiquetas Script, código de ejecución
en línea que llame a funciones previamente
definidas.
- Por activación a través
de un evento.
- Cuando el explorador avisa de un cambio en el
documento o la ventana se produce un evento que
lanza la función
asociada.
Las dos primeras formas no tienen ningún
misterio, tan sólo en el tercer caso es necesario ahondar
un poco mas en el comportamiento del navegador. Como ya sabrás
un evento es indicación de que ha ocurrido un cambio:
el usuario ha pulsado el ratón, o se ha producido un pulso
de reloj, o se ha terminado de cargar la página. De aquí deducirás
que existen dos tipos de eventos:los de usuario y los del sistema,
una clasificación que no afecta para nada a su tratamiento.
Lo que debemos saber es que todos los elementos de la ventana
pueden dar lugar a eventos. Un mismo evento pueden ser lanzado
por varios elementos si estos están anidados, unos dentro
de otros; en efecto el evento lanzado por el elemento mas interno
asciende por los elementos que lo contengan hasta llegar al elemento
padre, al document. Otro aspecto
a tener en cuenta es que existen manejadores de eventos predeterminados,
de manera que si no lo
evitamos un cierto evento puede provocar dos efectos el predeterminado
y el diseñado por el programador.
¿Y como trata el Javascript a los eventos? Pues como era de prever mediante
un objeto, el objeto event. Sabiendo esto casi podemos adivinar como vincular
eventos a las funciones que los controlen: en general basta una simple asignación
del tipo tipo_de_evento = función.
Aunque todos los elementos de la página puedan lanzar eventos, cada
elemento sólo posee un cierto grupo de estos. Por ejemplo, un elemento
link de la página puede disparar el evento onclick (pulsación
del botón del ratón) pero no tiene el evento onLoad (indicación
de fin de la carga de un elemento).
|