JavaScript中document.referrer的用法详解
本文详解JavaScript中document.referrer属性的含义与用途,通过H5页面返回按钮实例,展示如何利用referrer判断来源页面,解决首屏无历史记录时的返回逻辑,提供两种优化方案及代码实现。
document.referrer属性简介
前言
在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL、domain和referrer。
其中,URL属性存储页面的完整地址,domain属性仅包含域名部分,而referrer属性则记录了链接到当前页面的上一个页面的URL。
前两个属性较为直观,referrer属性即指代上一页的URL地址。该属性在实际开发中有哪些具体应用场景呢?
返回按钮的常见实现方式
在H5移动端页面开发中,通常需要在页面头部添加一个返回上一页的按钮,效果如下所示:
页面头部
点击左侧的返回元素,可以通过编写JS代码实现跳转功能:
var back = document.getElementById('back'); //假设该返回按钮元素id为back
back.onclick = function(){
history.back(); //返回上一个页面,也可以写成history.go(-1)
};
或者采用更简洁的方式,无需编写JS,直接使用a标签定义该返回按钮元素:
<a id="back" href="javascript:history.back();" rel="external nofollow" ></a>
上述内容主要介绍了返回按钮的实现,尚未涉及document.referrer的具体作用。接下来将进入核心主题。
基于referrer的首屏返回逻辑处理
虽然上述方法基本实现了返回上一页的功能,但存在一种未考虑的情况(需保持严谨):如果该页面是通过他人分享链接直接打开,而非从其他页面跳转进入,此时点击按钮将无反应,因为浏览器历史记录中不存在前序页面,即这是用户打开浏览器的第一个页面。
为优化用户体验,通常有两种解决方案:一是在打开首个页面时隐藏返回按钮;二是点击按钮直接跳转至网站首页。具体方案可根据产品需求选择。
假设选择第一种方案(隐藏按钮),可通过以下JS代码实现:
if(document.referrer){
back.style.display = 'block'; //默认让其隐藏,当referrer属性不为空时让其显示
}
其他判断首屏页面的方法
结束语
判断当前页面是否为用户首次打开的页面,除检测referrer属性外,还可通过判断history.length是否为零来实现。
以上为本文全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对本站的支持。
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
D3.js 新手入门:环境搭建与第一个条形图实现
2026-11-04 10:49:48
