miércoles, 27 de julio de 2011

Capturar F5 y enter con javascript

Dejo esto por aquí para la gente que le pueda servir o como nota mental...
Es un código que captura el F5 tanto para firefox commo para iExplorer.

En mi caso la captura de F5 me sirve para eliminar un parámetro de la URL al refrescar la pantalla.

//Captura del F5
document.onkeydown = function(event ){
var tecla = (document.all)? window.event.keyCode : event.which;
if(document.all){ //Iexplorer

if(window.event && window.event.keyCode == 116){
window.event.keyCode = 505;
}
if(window.event && window.event.keyCode == 505){
var url = location.href.replace("?lo_que_sea","");
location.href = url;
return false;
}
}else{ //Mozilla u otros
if (event.keyCode == 116){
//Para que al recargar no aparezca de nuevo el mensaje
var url = location.href.replace("?Lo_que_sea","");
location.href = url;
return false;
}
}
};

//Captura Intro
document.onkeypress = function(event) {
var tecla = (document.all)? window.event.keyCode : event.which;

if (tecla == 13){
validarFormulario(); //Es una funcion de validación
}
}

3 comentarios:

  1. Versió en jQuery:

    $(document).ready(function(){
    $(document).keypress(function(e){
    alert(e.keyCode);
    if(e.keyCode == 116)
    {
    var url = location.href.replace("?var","?xoxo");
    location.href = url;
    return false;
    }
    });
    });

    ResponderEliminar
  2. Afortunados aquellos que puedan usar jQuery en sus proyectos...
    Versículo primero de la carta de un informático a Jesus.

    ResponderEliminar
  3. Per a ser mes correcte deuria de utilitzar
    if(e.which) == 116
    en lloc de e.keyCode, pero per a evitar sobreescriure funcionalitats del navegador, jQuery retorna el valor 0 per a estes tecles, aixina que hem d'anar a morir al keyCode.

    ResponderEliminar