JavaScript中document.referrer的用法详解

发布时间 - 2026-01-11 02:09:50    点击率:

前言

在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL、domain和referrer。

URL属性包含页面完整的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有什么用呀!别急,前面只是铺垫,接下来步入正题~~~

虽说感觉上面这样已经基本上实现了返回上一页的功能,但是有一种情况没有考虑到(我们程序员还是要严谨一点嘛),就是假如该页面是别人分享过来的而不是通过其他页面进入的呢?那么点击该按钮将不会有任何反应,因为此时history对象中不存在历史记录,也就是说这是你浏览器窗口打开时浏览的第一个页面。

为了优化用户体验,这里通常有两种解决方案。一种是在打开第一个页面时不显示返回上一页按钮,另一种是点击直接跳转到网站首页,这可以根据产品需求来选择合适的方案。

这里假设选择第一种方案,我们可以这样写段JS:

if(document.referrer){
 back.style.display = 'block'; //默认让其隐藏,当referrer属性不为空时让其显示
}

结束语

其实判断当前页面是否是用户一开始打开的页面,方法也不止通过判断referrer属性这一种方法,还可以通过history.length是否为零来判断。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# document.referrer  # js  # js中document的用法  # javascript document.referrer 用法  # javascript的document.referrer浏览器支持、失效情况总结  # Javascript document.referrer判断访客来源网址  # JavaScript中的document.referrer在各种浏览器测试结果  # IE下document.referrer 拒绝访问的解决方法  # js中document.referrer实现移动端返回上一页  # Javascript中document.referrer隐藏来源的方法  # 第一个  # 上一页  # 这么多  # 我们可以  # 让其  # 有什么  # 这一  # 是在  # 很好  # 会有  # 好了  # 有个  # 就像  # 还可以  # 有很多  # 说了  # 只需  # 说到  # 要在  # 考虑到 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  如何快速建站并高效导出源代码?  如何用花生壳三步快速搭建专属网站?  Laravel如何实现数据库事务?(DB Facade示例)  javascript中的try catch异常捕获机制用法分析  如何用虚拟主机快速搭建网站?详细步骤解析  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  制作企业网站建设方案,怎样建设一个公司网站?  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Swift中循环语句中的转移语句 break 和 continue  Python自动化办公教程_ExcelWordPDF批量处理案例  网站制作免费,什么网站能看正片电影?  Android Socket接口实现即时通讯实例代码  Linux网络带宽限制_tc配置实践解析【教程】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何在阿里云完成域名注册与建站?  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  如何快速生成凡客建站的专业级图册?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  如何在建站之星绑定自定义域名?  如何在阿里云域名上完成建站全流程?  Laravel如何实现API版本控制_Laravel版本化API设计方案  如何快速搭建虚拟主机网站?新手必看指南  如何批量查询域名的建站时间记录?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  浅析上传头像示例及其注意事项  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel如何使用Eloquent进行子查询  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  如何续费美橙建站之星域名及服务?  Android中AutoCompleteTextView自动提示  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Windows Hello人脸识别突然无法使用  如何破解联通资金短缺导致的基站建设难题?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  lovemo网页版地址 lovemo官网手机登录  成都网站制作公司哪家好,四川省职工服务网是做什么用?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  nginx修改上传文件大小限制的方法  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】