viernes, 24 de octubre de 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</a>
<script>
var link = document.getElementById("linkid");
link.onclick=function(){
alert("aqui puedo hacer lo que quiera");
return false;
}
</script>
</body>
</html>

probado en firefox 3 y IE 6 (si funciona en IE 6 , lo podemos hacer funcionar en cualquier cosa)
Esto esta bueno porque podemos permitir cierto comportamiento comun del navegador, como click derecho->copiar ruta del enlace, y se copia el enlace bien, pero al momento del click podemos cambiar el link al que se dirije y listo.

lo que es cierto es que tambien podemos probar en los eventos onmousedown y onmouseup pero eso se los dejo a ustedes asi se divierten

Saludos y sigan mandando preguntas

No hay comentarios:

Publicar un comentario