Cancelando eventos en el teclado con mootools

Mientras escribimos aplicaciones para web en las cuales se pueda interactuar con el teclado, muchas veces teclas y combinaciones de teclas nos llevan a acciones que ejecutan los navegadores como salvar, imprimir, buscar, etc… por lo que desde los frameworks y mootools en este caso se pueden cancelar y hasta personalizar por nuestras propias acciones. Acabo de utilizar todas los posibles eventos de Mootools para detener las acciones del teclado. Quizas me equivoque mientras hago mis pruebas y serían bienvenidos cualquier tipo de comentarios para mejorar el uso y aplicacion de las combinaciones de teclas.
Las pruebas las he hecho con Internet Explorer 7.0, Firefox 2.0.0.3 and Opera 9.2.
usando Mootools:
1 2 3 4 5 6 7 | function EventoDetenerTecla(evento) { var evento = new Event(evento); evento.stop(); evento.stopPropagation(); evento.preventDefault(); return false; } |
1 2 3 | $('elemento').onkeydown = EventoDetenerTecla; $('elemento').onkeypress = EventoDetenerTecla; $('elemento').onkeyup = EventoDetenerTecla; |
Deteniendo eventos keydown, keypress, keyup
Y lo que se puede cancelar en los navegadores:
| IE | Firefox | Opera | |
|---|---|---|---|
| Alt+Letter | No | Si | No |
| Ctrl+Letter | No | Si | Si |
| Alt+Num | Si* | Si(3) | Si* |
| Ctrl+Num | Si(1) | Si | Si |
| Alt+Fn | No | Si | No |
| Ctrl+Fn | No | Si | No |
| Shift+Fn | Si(2) | Si | No |
* No es utilizado por ninguna combinacion de teclas
(1) No aplica para cero, + y – (ajuste del tamaño de las fuentes).
(2) Excepto para Shift+F1, se reserva para eventos de mostrar ayuda.
(3) Probado sobre Windows y Linux, this == Ctrl+Num.