2010-02-25 28 views
8

¿Hay alguna forma de usar JavaScript (u otra cosa) para detectar/evitar que el usuario haga clic en el botón de navegación hacia atrás/adelante?dolor del botón Atrás del navegador

Me gustaría saber acerca de la práctica común para tratar este problema. Esto es realmente dolor especialmente en el flujo de trabajo, como ordenar.

+13

La práctica buena (no necesariamente común) es asegurarse de que su aplicación realmente funciona, incluso cuando se enfrenta con un usuario que utiliza su navegador tal como está diseñado. –

+1

Esta tiene que ser una de las preguntas más duplicadas en SO. Me sorprende que ninguna de las cinco personas que respondieron recuerde haber visto esta pregunta diez veces más o menos. –

+0

@John: no, solo soy miembro por un mes más o menos. Veo que hay varias preguntas relacionadas a la derecha ... –

Respuesta

11

En realidad, impedir que el usuario use el botón Atrás o Adelante es una mala usabilidad y frustrará mucho a los usuarios: para ser franco, le está devolviendo un problema de desarrollador al usuario.

Creo que Post/Redirect/Get pattern, junto con window.onbeforeunload en javascript (como SO usa) sería realmente útil para sus circunstancias.

+0

En realidad es 'window.onbeforeunload' (yo mismo hice este error). –

+0

@Marcel - Gracias por señalar eso. –

0

Nop esto no es posible, no se puede usurpar la experiencia de navegación de un usuario, pero espero que no debe haber un trabajo en torno a este ....

0

Por lo que yo sé, no, pero puede usar el evento window.onbeforeunload para advertir a los usuarios que no se vayan, al arriesgar la pérdida de datos. Tenga en cuenta que esto no funciona en Opera.

1

Si se construye una aplicación web una página (es decir, una sola página se carga, a continuación, todas las modificaciones se realizan de forma dinámica en esa página con Javascript) tiene varias opciones:

Cuando el usuario hace clic en el botón de retroceso, que dejas la página, ya que es la única, y puede advertir al usuario a través del evento window.onbeforeunload

Y luego, si necesita/desea más control del comportamiento del botón Atrás/Siguiente, puede agregar una clave hash (#) para manejar eso.
Ver mi respuesta a esa pregunta: Change the get parameters in the address bar in jquery

Cuestiones relacionadas