Cómo comprobar si el usuario puede retroceder en el historial del navegador o no

Resuelto CodeOverload asked hace 14 años • 29 respuestas

Quiero usar JavaScript para ver si hay historial o no, es decir, si el botón Atrás está disponible en el navegador o no.

CodeOverload avatar Aug 28 '10 04:08 CodeOverload
Aceptado

Respuesta corta: no puedes.

Técnicamente existe una forma precisa, que sería comprobar la propiedad:

history.previous

Sin embargo, no funcionará. El problema con esto es que en la mayoría de los navegadores esto se considera una violación de seguridad y generalmente simplemente devuelve undefinido .

history.length

Es una propiedad que otros han sugerido...
Sin embargo , la longitud no funciona del todo porque no indica en qué parte del historial te encuentras. Además, no siempre comienza con el mismo número. Un navegador que no está configurado para tener una página de destino, por ejemplo, comienza en 0, mientras que otro navegador que utiliza una página de destino comenzará en 1.

texto alternativo

La mayoría de las veces se agrega un enlace que llama:

history.back();

o

 history.go(-1);

y se espera que si no puede regresar, hacer clic en el enlace no hará nada.

McAden avatar Aug 27 '2010 22:08 McAden

Hay otra forma de comprobarlo: comprobar el referente. La primera página normalmente tendrá una referencia vacía...

if (document.referrer == "") {
    window.close()
} else {
    history.back()
}
Ron Reiter avatar Oct 04 '2011 16:10 Ron Reiter