Buscar este blog

miércoles, 7 de diciembre de 2011

Cancelar el F5 en una pagina web

Hoy veremos como cancelar la tecla F5 (refresh) para evitar que recarguen nuestra pagina. Esto lo haremos sobrescribiendo el evento keydown de document:

document.onkeydown = function(){  
}

Y para saber cual tecla pulso lo aremos por medio de window.event.keyCode, para nuestro ejemplo agregamos una función que pone la hora y de esta manera vemos que realmente que no se esta refrescando nuestra pagina. De igual manera agrego un evento a un input para que vean que no se esta sobrescribiendo los eventos de los demás controles.

Ejemplo completo:


<html>
<head>
  <script language="javascript">

   document.onkeydown = function(){  
    if(window.event){
if(window.event.keyCode == 116)
{
                        return false;
}
    }
   }  

   function pon_hora(){
    var dHora = new Date();
    var res = String(dHora.getHours()) + ":" + String(dHora.getMinutes()) + ":" + String(dHora.getSeconds());
    document.frm.txt.value = res;
    return res;
   }
 
   function txtKey()
   {
alert('No sobreescribe el evento keydown de los controles')
   }
 
  </script>  
 </head>
 <body onload="pon_hora()">
  <form name="frm">
   <h1><b>ANULACIÓN DE LA TECLA TECLA F5</b><br></h1>
   Hora actual:&nbsp;<input type="text" name="txt" onkeydown="return txtKey();"><br><br>
   (Al seleccionar el botón "Actualizar" del navegador la hora debería actualizarse, pero con la tecla F5 no)
  </form>
 </body>
</html>

No hay comentarios:

Publicar un comentario