在JavaScript中,获取前一次访问的URL可以通过多种方式实现,但需要注意的是,浏览器出于隐私保护的考虑,不会直接提供一个API来获取完整的浏览历史记录。不过,我们可以通过一些技巧来获取前一次访问的URL。
document.referrer
document.referrer
属性可以返回加载当前文档的上一页面的URL。这是最简单的方法,但需要注意的是,如果用户直接打开新标签页或者使用书签访问,则referrer
可能为空。
console.log(document.referrer);
可以在用户访问页面时,将当前URL存储到Session Storage中,这样在下一次访问时就可以读取出来。
// 在页面加载时存储当前URL
window.onload = function() {
sessionStorage.setItem('previousUrl', document.referrer);
};
// 在需要的时候读取前一次的URL
var previousUrl = sessionStorage.getItem('previousUrl');
console.log(previousUrl);
通过监听popstate
事件,可以在用户导航时获取前一个页面的URL。
window.addEventListener('popstate', function(event) {
console.log('前一个页面的URL:', event.state.url);
});
// 在页面加载时设置初始状态
window.onload = function() {
history.replaceState({url: document.referrer}, '');
};
document.referrer
为空以下是一个结合Session Storage和document.referrer
的完整示例:
// 在页面加载时存储当前URL
window.onload = function() {
var currentUrl = window.location.href;
var previousUrl = document.referrer || sessionStorage.getItem('previousUrl');
sessionStorage.setItem('previousUrl', previousUrl);
console.log('当前页面的URL:', currentUrl);
console.log('前一次访问的URL:', previousUrl);
};
通过上述方法,可以在大多数情况下有效地获取前一次访问的URL。
领取专属 10元无门槛券
手把手带您无忧上云