2011-03-21 13 views
8

Tengo una aplicación web en la que la funcionalidad del botón de retroceso del navegador debe personalizarse. Es como, cada vez que hacemos clic en el botón Atrás del navegador, debería llevarnos a la página de destino (página de inicio de sesión). Debería mostrar un mensaje de error que diga que 'la sesión expiró. Por favor inicie sesión nuevamente '.Cómo alterar la funcionalidad del botón de retroceso del navegador similar a los sitios de comercio electrónico en asp.net

He pasado por muchas publicaciones e incluso en el desbordamiento de la pila también, vi algunas publicaciones. Pero nada funcionó para mí. El enfoque de script java lo estoy usando como una solución temporal. Básicamente, este JavaScript nunca nos permite volver atrás. en cambio, nos mantendrá en la misma página. JavaScript he usado <script>history.go(1)</script>

Por favor, ayúdame a personalizar la funcionalidad del botón Atrás del navegador. Cualquier sugerencia será realmente útil para mí.

Respuesta

11

Respuesta corta: No se puede
Un poco más: Ni siquiera deberías intentarlo.

Pero si insiste: A Thorough Examination of "Disabling the Back Button." (a partir de 2000, pero ya que es ASP supongo que sigue siendo válida para ti :)

reciente punto net: Restrict user go back to previous page after signout

ignorar el navegadores antiguos no soportan ubicación. reemplace - IE3.2 no se considera anterior más antiguo.

+0

+1 Hay maneras más simples de irritar a los usuarios que esto, ¿por qué hacer un esfuerzo extra? Tal vez el OP podría decirnos qué es lo que quieren lograr deshabilitando el botón de retroceso, ya que puede haber un enfoque que no estropee tanto la experiencia del usuario. –

+0

@Jon - es simple: cualquier cosa que actualice cosas en su base de datos no quiere que se repita. Desde los albores de Internet, se crearon aplicaciones que no tenían esto en cuenta y no habían incorporado esto en la aplicación, para empezar. Por supuesto, es mucho más fácil pensar en formas de detener el comportamiento no deseado que hacer que la aplicación maneje las situaciones donde ocurre. Esa es una forma muy normal aunque grosera de tratar a un visitante. Lo del botón Atrás y "cómo cerrar la ventana del navegador" han estado en mi top 10 de preguntas frecuentes desde 1996. Estoy completamente de acuerdo: no te metas con el navegador de ninguna manera. – mplungjan

2

Para esto - que se necesita una solución personalizada y deshabilitar el botón Atrás no ayudará ...

Por lo general, usted no debe tratar de cambiar el comportamiento del botón de retroceso. Pero como esto es el requisito, sugeriría lo siguiente:

Enfoque 1:

Esto exige la creación de un marco de navegación donde se sabe que es la página actual en el flujo ... Esto sólo es posible si que una secuencia en la que se llamarán las páginas (como un mago)

Enfoque 2:

específica a su caso: se puede usar jQuery/javascript para identificar si se hace clic en el botón de atrás .. Si se trata de entonces puedes hacer una llamada ajax al servidor para matar la sesión y luego redirigir al usuario a la página de inicio de sesión.

0

Puede manipular mediante programación el historial del navegador usando algo como esto: window.history.back(); window.history.forward(); window.history.go (2); etc.

En navegadores modernos listos para HTML5 como Chrome, también puede hacer cosas más avanzadas, incluida la sobreescritura completa de la funcionalidad de botón de retroceso utilizando los métodos history.pushState() y history.replaceState(). (https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history)

También puede ir sucio y el uso de JavaScript + llamadas ajax para reaccionar específicamente para respaldar eventos de botón, pero esto también no funcionará en algunos navegadores . Lo que usted pregunta no es una parte nativa de una web, por lo que no importa lo que decida usar al final, no será muy fácil o ampliamente compatible.

Cuestiones relacionadas