Una de las últimas preguntas que hacían en nuestros foros era acerca de cómo capturar la tecla F5 dentro de un navegador. Y @Torres aportaba la solución de forma muy correcta mediante Javascript.
Veamos cuales son los pasos.
Lo primero será saber que el usuario ha pulsado una tecla. Es por ello que deberemos de estar al tanto del evento onkeydown. Al cual le asignaremos una función de escucha. Bueno, el evento lo capturamos a nivel de página:
document.onkeydown=capturarf5;
Como podemos ver, la función recibe el objeto event. Este será el que contenga la información de la tecla que el usuario ha pulsado.
Empecemos a detallar la función capturarf5(). Lo primero que hay que saber es que el código de la tecla pulsada viaja en la propiedad event.which y que la tecla F5 tiene el código 116. Como la propiedad event.which no está recogida en ninguna especificación (de momento es del DOM Gecko, aunque ampliamente reconocida) también tenemos que utilizar la propiedad e.keycode (de las implementaciones para el Internet Explorer)
Así, para capturar el código de la tecla utilizamos la siguiente línea:
var code = (e.keyCode ? e.keyCode : e.which);
Y si es el código 116…. pues, lo que queramos. ¿avisamos al usuario?
if(code == 116) {
alert("Pulsada la tecla F5");
}
Como podemos apreciar… un código muy sencillo.
Por cierto, ¿esto evita un refresco de la página?
Muchas gracias a @Torres por su aporte en los foros.