Entradas

Mostrando entradas de octubre, 2008

Controlando eventos

Por el post anterior recibi una pregunta muy interesante: Con el tema de eventos, estaba viendo q en GMAIL, cuando aparece una direccion de correo, aparece el clasico "mailto:" con parte del href del anchor. Pero en lugar de levantar el clasico outlook o tu gestor de mail pop3, levanta en ventana aparte una pagina donde nos permite redactar el mail. Como se puede lograr esto?? es muy simple las funciones que son asignadas en los eventos pueden devolver un valor true o false (a decir verdad todas las funciones en javascript pueden devolver un valor por más que no sea utilizado cuando se llamó a la funcion). El punto es que si una funcion asignada a un evento devuelve False, esto evita que el comportamiento normal para ese evento continue (que no es lo mismo que cancelar la burbuja de eventos para los entendidos). gracias a esto podemos decir entonces: <html> <head> </head> <body> <a id="linkid" href="mailto:hola@gmail.com">link

Javascript Events en el DOM

Los eventos javascript son más complicados de lo que uno cree hay tres modelos importantes que entender el modelo Tradicional function hacerAlgo(){ alert('lo hice'); } obj.onclick= hacerAlgo; donde los eventos son miembros seteables de un objeto. Como la mayoria de ustedes sabrá obviamente podemos utilizar funciones anonimas (lambda) para asignar los eventos obj.onclick= function(){ alert('hizo click') } todos los navegadores soportan este modelo de eventos, el unico problema es que no es facil poder contar con el objeto event ni con el objeto que recivió el evento de una manera cross browser debido a la (mala) implementación de IE (trident) veamos un ejemplo supongamos un elemento div con id="el_div" var obj = document.getElementById("el_div"); obj.onclick = function (e){ // en la mayoria de los browsers compatibles con //w3c el parametro e de la funcion posee el objeto event // en IE el objeto esta en window.event e = e || window.eve