2011-04-19 21 views
10

Deseo desactivar la actualización en mi sitio web. ¿Hay alguna manera de deshabilitar F5, Ctrl - R, o volver a cargar en una página web?¿Puedo deshabilitar la actualización del navegador en mi aplicación web?

+2

es mucho mejor si usted piensa desarrollar su propio navegador. –

+3

Cada vez que escuché que un desarrollador propuso esta posibilidad, es porque descubrieron que actualizar el navegador rompe su código. Pero eso solo es posible si su código ignora o anula el modelo básico de navegación del navegador web, la plataforma en la que están desarrollando. La respuesta es no meterse con el modelo aún más. Es arreglar lo que sea que esté haciendo, lo que arruina el comportamiento normal y esperado de la Web. –

+0

Si la página contiene cualquier temporizador, necesita deshabilitar la actualización. El otro temporizador comenzará desde el principio. –

Respuesta

2

Tengo una sugerencia. Hay un cuadro de respuesta en esta página.

(Aquí a continuación con su etiqueta de respuesta)

  • Tipo algún texto en ella.
  • A continuación, volver a cargar esta página

Al actualizar hay algún mensaje de advertencia que aparece, le sugiero que permite mostrar el mensaje de advertencia similar, en lugar de deshabilitar la funcionalidad de actualización.

1

No, No hay tal manera. Puede advertir al usuario que no actualice

7

No, no hay forma de deshabilitarlo.

Si está intentando evitar el "¿Desea volver a enviar esta acción?" cuadro de diálogo, use Post/Redirect/Get.

0

Puede haber algunos trucos que funcionarían en algunos navegadores, pero no hay nada que pueda garantizar que no puedan actualizar la página. Los navegadores y los estándares web están abiertos de par en par, por lo que un usuario podría piratear fácilmente un navegador para solucionar cualquier problema que haya implementado.

Si la actualización tendría un impacto negativo en la experiencia del usuario, lo mejor es darles una advertencia textual.

Si esto es para corregir un error (como la falta de idempotencia), debe buscar reparar el error en su lugar.

12
window.onbeforeunload = function() {return false;} 

Esto desactiva salir de la página a menos que el usuario confirma, no solamente de actualización, por lo que tendrá que codificar mismo, para conseguir que funcione.

Nunca dijiste lo que estabas haciendo con él, así que lo dejé así.

+0

BBut ¿cómo personalizar el mensaje? – Pacerier

+0

https://stackoverflow.com/questions/38879742/is-it-possible-to-display-a-custom-message-in-the-beforeunload-popup –

+0

"Me sorprende que todos digan que no pueden hacer esto "Creo que todos tienen razón. Puede mostrar un modal de confirmación pero no puede desactivar la recarga de la página pase lo que pase. – Jaime

2

No sé cómo deshabilitar la actualización haciendo clic (todavía tengo que uno mismo) Aparte del uso de un script del lado del servidor para detener la "redirección" Sin embargo, yo conozco muy fácil jQuery para desactivar F5:

function disableF5(e) { if (e.which == 116) e.preventDefault(); }; 
// To disable f5 
$(document).bind("keydown", disableF5); 
// To re-enable f5 
$(document).unbind("keydown", disableF5); 
3

Compruebe si hay una cookie cada vez que entra en la página. si la cookie está allí, entonces sabes que se realizó una actualización.

Si la cookie no está allí crear una con duración cero (existen sólo hasta el navegador sigue abierto)

0

En caso de que todavía está buscando una solución práctica; He creado un plugin de jQuery rápido y muy simple que se puede utilizar para desactivar F5 y también pedir al usuario final cuando intenta hacer clic en Actualizar ni fuera de la página:

https://github.com/clintb/LockNav

0

Hay camino para evitar que el usuario actualice su página presionando F5. Tratar este los códigos dentro de su cuerpo de la etiqueta:

<body onkeydown="return (event.keyCode != 116)"> 
0

Si desea desactivar CTRL + F5, Ctrl + R, f5, retroceda a continuación, puede utilizar este código simple. Este código está funcionando tanto en Mozila como en Chrome. Agregue este código dentro de la etiqueta de su cuerpo:

<body onkeydown="return (event.keyCode == 154)"> 
Cuestiones relacionadas