Cómo comprobar si el usuario puede retroceder en el historial del navegador o no
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.
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.
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.
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()
}