document.referrer的用法

简介: 在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL、domain和referrer。URL属性包含页面完整的URL,domain属性中只包含页面的域名,而referrer属性中则保存着链接到当前页面的那个页面的URL。

在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();"></a>

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

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

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

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

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

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

本文为原创文章,转载请注明出处,谢谢!

相关文章
|
3月前
|
JavaScript 前端开发 安全
document.domain 与 window.location
document.domain 与 window.location
|
4月前
|
JavaScript 前端开发 UED
window.location.href的用法总结
window.location.href的用法总结
|
4月前
document.write和innerHTML、innerText 的区别?
document.write和innerHTML、innerText 的区别?
|
5月前
|
安全
document.write和innerHTML和innerText的区别
document.write和innerHTML和innerText的区别
36 8
|
5月前
|
JavaScript 前端开发
document.write和innerHTML、innerText 的区别
document.write和innerHTML、innerText 的区别
46 5
|
5月前
|
安全
document.write和innerHTML、innerText的区别?
document.write和innerHTML、innerText的区别?
|
10月前
|
JavaScript 前端开发
document.referrer
document.referrer
49 0
|
JavaScript 前端开发
html、body、document、window 的区别
html、body、document、window 的区别
249 0
html、body、document、window 的区别
|
Web App开发 监控 JavaScript
Document.Referrer丢失的几个原因
来文转自:www.imkevinyang.com/2010/01/document-referrer丢失的几个原因.html   Referrer的重要性 HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页。
1769 0
|
存储 JSON 关系型数据库
文档(Document)
文档(Document)
142 0