document.referrer
во многих случаях вы получите URL-адрес последней страницы, которую посетил пользователь, если он попал на текущую страницу, щелкнув ссылку (в отличие от ввода непосредственно в адресную строку, или, я полагаю, в некоторых случаях, отправив форму?). Указано DOM уровня 2 . Больше здесь.
window.history
разрешает навигацию, но не доступ к URL-адресам в сеансе по соображениям безопасности и конфиденциальности. Если бы была доступна более подробная история URL, то каждый посещенный вами сайт мог бы видеть все другие сайты, на которых вы были.
Если вы имеете дело с перемещением состояний по вашему собственному сайту, то, возможно, менее хрупко и, безусловно, более полезно использовать один из обычных методов управления сеансом: данные cookie, параметры URL или данные сеанса на стороне сервера.
document.referrer
не всегда работает.$.cookie("previousUrl", window.location.href, {path:"/"});
,Если вы хотите перейти на предыдущую страницу, не зная URL-адреса, вы можете использовать новый API History.
Но вы не можете управлять содержимым стека истории в браузере, который не поддерживает HTML5 History API
Для получения дополнительной информации см. Документ
источник
document.referrer
не совпадает с фактическим URL во всех ситуациях.У меня есть приложение, где мне нужно установить frameset с 2 кадрами. Один кадр известен, другой - это страница, на которую я ссылаюсь. Казалось бы, это
document.referrer
было бы идеально, потому что вам не нужно было бы передавать фактическое имя файла в документ набора фреймов.Однако, если вы позже измените страницу нижнего фрейма и затем используете
history.back()
ее, исходная страница не загружается в нижний фрейм, вместо этого она перезагружается,document.referrer
и в результате набор фреймов исчезает, и вы возвращаетесь к исходному начальному окну.Мне понадобилось немного времени, чтобы понять это. Таким образом, в массиве history,
document.referrer
это не только URL, это, по-видимому, спецификация окна реферера. По крайней мере, это лучший способ понять это сейчас.источник
Если вы пишете веб-приложение или одностраничное приложение (SPA), в котором маршрутизация выполняется в приложении / браузере, а не в обратном направлении на сервер, вы можете сделать следующее:
Затем в вашем новом маршруте вы можете сделать следующее, чтобы получить предыдущий URL:
источник
Те из вас, кто использует Node.js и Express, могут установить cookie-файл сеанса, который запомнит URL текущей страницы, что позволит вам проверить реферер при загрузке следующей страницы. Вот пример, который использует
express-session
промежуточное программное обеспечение:Затем вы можете проверить наличие cookie-файла реферера следующим образом:
Не предполагайте, что cookie-файл реферера всегда существует с этим методом, поскольку он не будет доступен в тех случаях, когда предыдущий URL-адрес был другим веб-сайтом, сеанс был очищен или был только что создан (загрузка веб-сайта впервые).
источник
document.referrer
служит вашей цели, но не работает для версий Internet Explorer ранее, чем IE9.Он будет работать для других популярных браузеров, таких как Chrome, Mozilla, Opera, Safari и т. Д.
источник
Это позволит перейти к ранее посещенному URL.
источник