java referrer_JavaScript中document.referrer的用法详解

article/2025/10/9 2:04:02

前言

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

URL属性包含页面完整的URL,domain属性中只包含页面的域名,而referrer属性中则保存着链接到当前页面的那个页面的URL。

前面两个很好理解,而referrer属性简单来说就是上一个页面的URL。那么这个属性具体有什么用处呢?

在H5页面中,我们经常要在头部加个返回上一个页面按钮,就像下面这样的:

7760640e4b584bcf24e4fee63cb6de15.png

页面头部

点击左侧的元素可以返回到上一个页面,我们可以简单写一段JS代码:

var back = document.getElementById('back'); //假设该返回按钮元素id为back

back.onclick = function(){

history.back(); //返回上一个页面,也可以写成history.go(-1)

};

或者有个更简单的方式,不用写这么多JS,只需直接用a标签表示该返回按钮元素:

咦?上面说了这么多,还是没有说到document.referrer有什么用呀!别急,前面只是铺垫,接下来步入正题~~~

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

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

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

if(document.referrer){

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

}

结束语

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

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


http://chatgpt.dhexx.cn/article/DSfiY2kV.shtml

相关文章

meta标签的 referrer

首先&#xff0c;我先不解释&#xff0c;先看下我下面的请求数据图。 1.默认 (<meta name"referrer" content"origin"/>不写 也不 指定时) 2.origin时 3.no-referrer时 实验了这三个&#xff0c;就知道referrer的默认值和请求头的参数键值数据&…

设置referrer

1.全界面设置 所有界面挑战时携带地址origin&#xff0c;所有请求不携带地址never&#xff08;修改后记得从新启动&#xff09; <meta name"referrer" content"origin"> 2.单页面设置 vue的话可以设置一个vue-meta的插件&#xff08;暂不介绍&…

php referrer policy,Referrer Policy介绍

referer的写法是错的&#xff0c;正确的是referrer。大概是早期http规范的拼写错误&#xff0c;然后为了保持向下兼容&#xff0c;就将错就错了。 一、九种policy enum ReferrerPolicy { "", "no-referrer", "no-referrer-when-downgrade", &quo…

Referer和Referrer Policy详解

最近换了个负责网络安全的leader&#xff0c;整个部门开始网络安全整顿&#xff0c;我们负责WEB的接到通知要求防御CSRF攻击&#xff0c;设置referer白名单。之前看过一点referer相关的&#xff0c;但是了解不够深入&#xff0c;趁这次机会好好了解了一下。 1. 什么是 Referer…

Referer  是什么?

版权所属&#xff1a;SO JSON在线解析 原文地址&#xff1a;https&#xff1a;//www.sojson.com/blog/58.html 转载时必须以链接形式注明原始出处及本声明。 Referer 是 HTTP 请求header 的一部分&#xff0c;当浏览器&#xff08;或者模拟浏览器行为&#xff09;向web 服…

响应式网页设计

目录 Responsive Web Design响应式网页设计流体网格&#xff08;Fluid grid&#xff09;弹性图片&#xff08;Flexible image&#xff09;srcset和sizes属性 SVGbackground-size CSS3媒体查询&#xff08;CSS3 media query&#xff09;和断点 meta渐进增强过时控制工具Moderniz…

css 与 html5

折叠隐藏文字 快捷键&#xff1a;span*6&#xff0c;然后敲一个tap键&#xff0c;会生成6个span标签写业务style之前&#xff0c;需要先清除style的内置样式也就是在style里面写上* {margin: 0;padding: 0;}注意body的height:100vh;不要写100%弹性盒子能使子元素垂直居中的条件…

前端Vue书籍翻页功能利用turn.js来完成以及知识点(源码)

目录 下载文档开始构造方法可配置项 方法语法 事件两种方式添加事件 自动翻页loading加载功能 案例CSSbasic.css源码如下 JS里面代码太多了,直接官网下载index.html源码如下 最终效果如下 下载 下载完里面有源码,好几种翻页效果,很不错~ 官网 文档 接口文档 开始 构造方法 …

html局部翻页效果,基于Turn.js 实现翻书效果实例解析

最近项目经理我个项目练练手,其项目需求是要实现翻书效果,看到这个需求后,我真是懵了,这咋整,我可是java出身的啊,这个问题真是难住我了,后来有同事的指导,之前他曾经做过PC版的翻书效果,当时使用的是Turn.js ,查过其相关API后,整个人突然豁然开朗呀,使用Turn.js 完…

用Modernizr和Yepnope进行递归增强

Alex Sexton的yepnope.js脚本加载程序的1.0版已于上周发布&#xff0c;因此我认为这是一个向您展示如何将Yepnope与Modernizr结合使用HTML5功能而又不招致最新用户下载的绝佳时机。 -划痕的浏览器。 什么是回归增强&#xff1f; 您可能已经熟悉渐进增强的概念&#xff1a;设计…

modernizr_使用Modernizr和Yepnope进行递归增强

modernizr Alex Sexton的yepnope.js脚本加载程序的1.0版已于上周发布&#xff0c;因此我认为这是向您展示如何将Yepnope与Modernizr结合起来以利用HTML5功能而又不招致最新用户的最佳时机。 -划痕的浏览器。 什么是回归增强&#xff1f; 您可能已经熟悉渐进增强的概念&#x…

Modernizr YepNope Tips

<style> <!-- p {text-indent:2em; line-height:24px; font-size:14px} h1, img {margin:0.6em 0} --> </style> 本文由前端开发whqet翻译自WDL&#xff0c;Rochester Oliveira2013年5月2日写的文章Modernizr & YepNope Tips。 每天都有新的更好的浏览…

教你如何申请注册微软邮箱【快速接收发送国外邮件】

如果要收发国内的邮件。网易和QQ不错的选择&#xff0c;如果接受国外邮件&#xff0c;还是国际性的公司&#xff0c;微软的outlook据说用户体验感比较好&#xff0c;先申请着&#xff0c;以备不时之需&#xff01; 申请地址&#xff1a;https://outlook.live.com/owa/ 点击创…

OutLook 2010 设置MSN邮箱

OutLook 2010 设置MSN邮箱 1、选择电子邮件账户&#xff0c;点击下一步 2、选择手动配置服务器设置或其他服务器类型(M)&#xff0c;点击下一步 3、选择Internet电子邮件(I)&#xff0c;点击下一步 4、按照提示&#xff0c;输入姓名&#xff0c;邮件地址&#xff0c;在服务…

如何申请@MSN.Com后缀的邮箱?

最近辞职在家无事,想申请个MSN.Com后缀的信箱,在网上搜索了一下,原来只要从下面的地址进入注册即可!注册抵制: https://accountservices.passport.net/reg.srf?nsmsn.com&sl1&lc2052 一口气申请了2个&#xff0c;哈哈! 您已经创建了一个 MSN 帐户 您现在可以使用电…

便捷注册live、MSN邮箱

live邮箱和msn邮箱现在已经不开放注册&#xff0c;而这两个邮箱还有些简短的很不错的用户名可用&#xff0c;方便记忆。网上有一些使用火狐浏览器和工具进行注册的办法&#xff0c;感觉过于繁琐&#xff0c;之后看到一个便捷的方式&#xff0c;亲测有效&#xff0c;分享给大家。…

阿里达摩院证实叶杰平、薄列峰入职,网易科技数字化产业周报来了

NEW 关注Tech逆向思维视频号 最新视频→【国家云强势来袭&#xff01;云计算市场要变天&#xff1f;】 阿里达摩院证实叶杰平、薄列峰入职&#xff0c; 每周一期数字化产业周报&#xff0c; 记录行业大事记、投融资动态和最新人事变动。 RECOMMEND “ 网易智能有12个不同垂直领…

上海创蓝253董事长_宝剑锋从磨砺出,创蓝253召开第四季度誓师大会

2018 年 10 月 13 日&#xff0c;创蓝 253 业务中心全体成员齐聚一堂&#xff0c;举办第三季度表彰大会暨第四季度誓师大会。大会的主题一是表彰业务中心第三季度优秀员工与优秀团队;二是制定第四季度目标&#xff0c;为冲刺全年目标做准备。 此次誓师大会上&#xff0c;创蓝 2…

罗剑锋透视HTTP协议学习笔记---31 | 时代之风(下):HTTP/2内核剖析

31 | 时代之风&#xff08;下&#xff09;&#xff1a;HTTP/2内核剖析 连接前言 连接前言 connection preface PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n在wireshark里称为magic&#xff0c;是一个纯HTTP/1消息&#xff0c;意思是以后的消息切换到HTTP/2 本来h2在ALPN或h2c的connec…

架构师成长之路:如何做基础框架设计?架构师落地的核心能力

前面&#xff0c;已经统一了对框架的认识。 接下来看看如何做基础框架设计&#xff0c;聊聊要做些什么、以及如何做基础框架设计&#xff1b;然后再看看使用基础框架功能的基本方式。 一&#xff1a;基础框架要实现的功能的来源 1&#xff1a;持续积累的通用功能、公共功能 …