Как получить предыдущий URL в JavaScript?
есть ли способ получить предыдущий URL в JavaScript? Что-то вроде этого:
alert("previous url is: " + window.history.previous.href);
есть что-то подобное? Или я должен просто хранить его в cookie? Мне нужно только знать, чтобы я мог делать переходы с предыдущего URL на текущий URL без якорей и все такое.
6 ответов:
document.referrerво многих случаях вы получите URL последней страницы, которую посетил пользователь, если они попали на текущую страницу, нажав на ссылку (вместо ввода непосредственно в адресную строку, или я считаю, что в некоторых случаях, отправив форму?). Указывается с помощью DOM Level 2. здесь.
window.historyразрешает навигацию, но не доступ к URL-адресам в сеансе по соображениям безопасности и конфиденциальности. Если была доступна более подробная история URL, то каждый сайт, который вы посещаете можно было увидеть все другие сайты, на которых вы были.Если вы имеете дело с состоянием, перемещающимся по вашему собственному сайту, то, возможно, менее хрупко и, безусловно, более полезно использовать один из обычных методов управления сеансами: данные cookie, параметры URL или информацию о сеансе на стороне сервера.
document.referrerне совпадает с фактическим URL во всех ситуациях.у меня есть приложение, где мне нужно создать набор с 2 рамами. Один кадр известен, другой-это страница, с которой я связываюсь. Казалось бы, что
document.referrerбыло бы идеально, потому что вам не нужно будет передавать фактическое имя файла в документ набора фреймов.однако, если вы позже измените нижнюю рамку страницы, а затем использовать
history.back()он не загружает исходную страницу в нижнюю рамку, вместо этого он перезагружаетсяdocument.referrerи в результате набор фреймов исчез, и вы вернулись к исходному стартовому окну.мне потребовалось некоторое время, чтобы понять это. Так что в массиве истории,
document.referrer- Это не только URL, это, по-видимому, спецификация окна реферера. По крайней мере, это лучший способ, которым я могу понять это в настоящее время.
Если вы хотите перейти на предыдущую страницу, не зная url, вы можете использовать новый api истории.
history.back(); //Go to the previous page history.forward(); //Go to the next page in the stack history.go(index); //Where index could be 1, -1, 56, etc.но вы не можете управлять содержимым стека истории в браузере, который не поддерживает HTML5 History API
для получения дополнительной информации см. doc
те из вас, кто использует узел.js и Express могут установить cookie сеанса, который будет помнить текущий URL-адрес страницы, что позволит вам проверить реферер при следующей загрузке страницы. Вот пример, который использует
express-sessionmiddleware://Add me after the express-session middleware app.use((req, res, next) => { req.session.referrer = req.protocol + '://' + req.get('host') + req.originalUrl; next(); });затем вы можете проверить наличие файла cookie реферера следующим образом:
if ( req.session.referrer ) console.log(req.session.referrer);не предполагайте, что файл cookie реферера всегда существует с этим методом, поскольку он не будет доступен в тех случаях, когда предыдущий URL был другим сайт, сессия была очищена или просто создана (первая загрузка сайта).
document.referrerдаст URL предыдущей страницы, но он будет работать для всех браузеров, таких как Opera, Mozilla Firefox, Safari и т. д., но не работает в Internet Explorer. Это приведет к нулю, когда вы используете этоdocument.referrerв IE.
Comments