document.referrer
en muchos casos, obtendrá la URL de la última página que visitó el usuario, si llegó a la página actual haciendo clic en un enlace (en lugar de escribir directamente en la barra de direcciones, o creo que en algunos casos, al enviar un formulario). Especificado por DOM Nivel 2 . Más aquí.
window.history
permite la navegación, pero no el acceso a las URL en la sesión por razones de seguridad y privacidad. Si hubiera disponible un historial de URL más detallado, cada sitio que visite podría ver todos los otros sitios en los que estuvo.
Si está lidiando con el estado moviéndose por su propio sitio, entonces posiblemente sea menos frágil y ciertamente más útil usar una de las técnicas normales de administración de sesión: datos de cookies, parámetros de URL o información de sesión del lado del servidor.
document.referrer
no siempre funciona.$.cookie("previousUrl", window.location.href, {path:"/"});
.Si desea ir a la página anterior sin conocer la URL, puede usar la nueva API de Historial.
Pero no puede manipular el contenido de la pila de historial en el navegador que no admite la API de historial HTML5
Para más información ver el documento
fuente
document.referrer
no es lo mismo que la URL real en todas las situaciones.Tengo una aplicación donde necesito establecer un conjunto de marcos con 2 marcos. Se conoce un marco, el otro es la página desde la que estoy enlazando. Parece que
document.referrer
sería ideal porque no tendría que pasar el nombre real del archivo al documento del conjunto de marcos.Sin embargo, si luego cambia la página del marco inferior y luego la usa
history.back()
, no se carga la página original en el marco inferior, sino que se vuelve a cargardocument.referrer
y, como resultado, el conjunto de marcos desaparece y vuelve a la ventana de inicio original.Me tomó un poco de tiempo entender esto. Entonces, en la matriz de historial,
document.referrer
no es solo una URL, aparentemente también es la especificación de la ventana de referencia. Al menos, esa es la mejor manera en que puedo entenderlo en este momento.fuente
Si está escribiendo una aplicación web o una aplicación de página única (SPA) donde el enrutamiento se realiza en la aplicación / navegador en lugar de un viaje de ida y vuelta al servidor, puede hacer lo siguiente:
Luego, en su nueva ruta, puede hacer lo siguiente para recuperar la URL anterior:
fuente
Aquellos de ustedes que usan Node.js y Express pueden configurar una cookie de sesión que recordará la URL de la página actual, lo que les permitirá verificar el referente en la próxima carga de la página. Aquí hay un ejemplo que usa el
express-session
middleware:Luego puede verificar la existencia de una cookie de referencia de esta manera:
No asuma que siempre existe una cookie de referencia con este método, ya que no estará disponible en instancias donde la URL anterior era otro sitio web, la sesión se limpió o se acaba de crear (carga del sitio web por primera vez).
fuente
document.referrer
cumple con su propósito, pero no funciona para versiones de Internet Explorer anteriores a IE9.Funcionará para otros navegadores populares, como Chrome, Mozilla, Opera, Safari, etc.
fuente
Esto navegará a la URL visitada anteriormente.
fuente