Para lo que está buscando, la mejor manera de tener el control refrescando la página web sería con la función onKeyDown. Desafortunadamente, si presiona el botón Actualizar directamente desde su navegador, se volverá a cargar el DOM, por lo que técnicamente no hay manera de evitar la actualización de esta acción.
Entrando en el mismo problema, encontré esta página web http://asquare.net/javascript/tests/KeyCode.html donde puede verificar la respuesta de su navegador a los eventos del teclado. Aquí puede comenzar a descubrir por qué onKeyDown es la mejor opción. Chrome no reacciona con la función onKeyPress.
Solo necesita una variable para controlar la acción refrescante. Si el usuario presiona la tecla, la acción onBeforeUnload no se ejecutará.
var refresh = false; //Control variable to control refresh access
j$(window).bind('beforeunload', function(){
if (refresh == false) { // If F5 is not pressed
return "Do you really want to leave?";
}
});
j$(window).keydown(function(event) {
if (event.keyCode == 116) { // User presses F5 to refresh
refresh = true;
}
});
Gracias, podemos hacer que suceda mediante el conjunto de FLAG, en caso afirmativo, ¿cómo puedo identificar la página está recibiendo actualización presionando F5? – mymotherland
@Dinesh, el objetivo de mi respuesta es que esto no se puede hacer porque no se puede distinguir entre un usuario que presiona F5 y un usuario que hace clic en un enlace para navegar. –
bien Darin, gracias una vez más – mymotherland