¿Cómo deshabilitar el botón ATRÁS del navegador (en todos los navegadores)?
asp.net
javascript
priyanka.sarkar
fuente
fuente
Respuestas:
Esta pregunta es muy similar a este uno ...
Necesita forzar la caducidad de la caché para que esto funcione. Coloque el siguiente código en el código de su página detrás.
fuente
No desactive el comportamiento esperado del navegador.
Haga que sus páginas manejen la posibilidad de que los usuarios retrocedan una página o dos; no intente inutilizar su software.
fuente
Se me ocurrió un pequeño truco que desactiva el botón de retroceso usando JavaScript. Lo verifiqué en Chrome 10, Firefox 3.6 e IE9:
¿Qué está haciendo?
De Comentarios:
Este script aprovecha el hecho de que los navegadores consideran lo que viene después del signo "#" en la URL como parte del historial de navegación. Lo que hace es esto: cuando se carga la página, se agrega "# 1" a la URL. Después de 50 ms, se elimina el "1". Cuando el usuario hace clic en "atrás", el navegador cambia la URL a la que era antes de que se eliminara el "1", PERO, es la misma página web, por lo que el navegador no necesita volver a cargar la página. - Yossi Shasho
fuente
Otros han adoptado el enfoque de decir "no hagas esto", pero eso no responde realmente a la pregunta del cartel. Supongamos que todos saben que esto es una mala idea, pero tenemos curiosidad por saber cómo se hace de todos modos ...
No puede deshabilitar el botón Atrás en el navegador de un usuario, pero puede hacer que su aplicación se interrumpa (muestre un mensaje de error que requiera que el usuario comience de nuevo) si el usuario regresa.
Un enfoque que he visto para hacer esto es pasar un token en cada URL dentro de la aplicación y dentro de cada formulario. El token se vuelve a generar en cada página y, una vez que el usuario carga una nueva página, se invalidan los tokens de las páginas anteriores.
Cuando el usuario carga una página, la página solo se mostrará si se le pasó el token correcto (que se le dio a todos los enlaces / formularios en la página anterior).
La aplicación de banca en línea que proporciona mi banco es así. Si usa el botón Atrás, no funcionarán más enlaces y no se podrán volver a cargar la página; en su lugar, verá un aviso que le indica que no puede regresar y que debe comenzar de nuevo.
fuente
Mientras yo mismo busco la respuesta, la "Mejor práctica" está ... desactualizada ... Al igual que los navegadores (en realidad, los navegadores son feos fósiles).
La solución mejor / más segura sería que los navegadores implementaran un método / solicitud donde el usuario pueda otorgar a la página la capacidad de controlar la interfaz.
¿Por qué? Porque para mi proyecto actual estoy construyendo una interfaz 100% JavaScript construida y controlada. Y los botones de retroceso no tienen lugar en mi proyecto ya que no hay cambio de página. (Es decir, muy rápido y sin parpadeos de página debido a una actualización ... ¡como una aplicación real!)
Sé por qué no existe la capacidad de "secuestrar" la interfaz, y lo entiendo. ¡Pero al menos deberíamos tener la capacidad de solicitarlo desde el navegador! Eso sería realmente la "mejor práctica" sin los peligros del highjack.
Pero los navegadores son navegadores ... No espero que suceda nada interesante a este respecto.
fuente
Estaba buscando la misma pregunta y encontré el siguiente código en un sitio. Pensé compartirlo aquí:
Sin embargo, como señalaron los usuarios anteriores, esta nunca es una buena práctica y debe evitarse por todas las razones.
fuente
Si confía en la tecnología del lado del cliente, puede eludirla. Javascript puede estar deshabilitado, por ejemplo. O el usuario puede ejecutar un script JS para evitar sus restricciones.
Supongo que solo puede hacer esto mediante el seguimiento del lado del servidor de la sesión del usuario y redirigiendo (como en Server.Transfer, no Response.Redirect) el usuario / navegador a la página requerida.
fuente
fuente
Ha habido algunas implementaciones diferentes. Hay una solución flash y algunas soluciones iframe / frame para IE. Mira esto
http://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps
Por cierto: hay muchas razones válidas para deshabilitar (o al menos evitar 1 paso) un botón de retroceso; mire gmail como un ejemplo que implementa la solución hash descrita en el artículo anterior.
Busque en Google "cómo ajax rompió el botón de retroceso" y encontrará muchos artículos sobre las pruebas de usuario y la validez de deshabilitar el botón de retroceso.
fuente
También tuve el mismo problema, use esta función de script de Java en la etiqueta de la cabeza o en, está funcionando bien al 100%, no le dejaría volver.
fuente
Prueba este código. Trabajó para mi. Básicamente cambia el hash tan pronto como se carga la página, lo que cambia la página del historial reciente agregando "1" en la URL. Entonces, cuando presiona el botón Atrás, se redirige a la misma página cada vez.
fuente
Debería utilizar publicaciones con caducidad adecuada y encabezados de almacenamiento en caché.
fuente
En lugar de intentar desactivar el botón de retroceso del navegador, es mejor admitirlo. .NET 3.5 puede manejar muy bien los botones de retroceso (y avance) del navegador. Buscar con Google: "Scriptmanager EnableHistory". Puede controlar qué acciones del usuario agregarán una entrada al historial del navegador (ScriptManager -> AddHistoryPoint) y su aplicación ASP.NET recibe un evento cada vez que el usuario hace clic en los botones Atrás / Adelante del navegador. Esto funcionará para todos los navegadores conocidos.
fuente
A nivel mundial, deshabilitar el botón Atrás es una mala práctica. Pero, en ciertas situaciones, la funcionalidad del botón de retroceso no tiene sentido.
Esta es una forma de evitar la navegación no deseada entre páginas:
Página principal (archivo
top.php
):Página secundaria (archivo
secondary.php
):El efecto es permitir navegar desde la página superior hacia adelante a la página secundaria y hacia atrás (por ejemplo, Cancelar) utilizando sus propios enlaces. Pero, después de regresar a la página superior, el botón de retroceso del navegador no puede navegar a la página secundaria.
fuente
Incluso me enfrenté a la misma situación antes ... y no tuve ninguna ayuda. prueba estas cosas, tal vez te funcionen
en la
<head>
etiqueta de la página de inicio de sesión :en el botón Cerrar sesión hice esto:
y en la página de inicio de sesión he puesto el foco en el cuadro de texto Nombre de usuario como este:
Espero que esto ayude ... :) alguien por favor enséñeme cómo editar esta página ...
fuente
SI necesita suprimir suavemente las teclas de eliminación y retroceso en su aplicación web, para que cuando estén editando / eliminando elementos, la página no se redirija inesperadamente, puede usar este código:
fuente
Prueba este código. Solo necesita implementar este código en la página maestra y funcionará para usted en todas las páginas
fuente
El problema con Yossi Shasho Código 's es que la página se desplaza a la parte superior de cada 50 ms. Así que modifiqué ese código. Ahora funciona bien en todos los navegadores modernos, IE8 y superiores
fuente
Esto parece haber funcionado para nosotros.
fuente
fuente