document.referrer的用法

作者: 前端王睿 | 来源:发表于2017-04-17 21:29 被阅读128次

在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是否为零来判断。

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

相关文章

  • document.referrer的用法

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

  • 深入理解document.referrer的用法

    前言在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL...

  • document.referrer

    referrer 属性返回载入当前文档的来源文档的URL。如果当前文档不是通过超级链接访问的,则为 null。这个...

  • 工作笔记

    20170726 js返回刷新 window.location.href = document.referrer;

  • js返回上一级并刷新

    window.location.href=document.referrer; 还有其他跳转window.hist...

  • javascript 页面后退并刷新

    实现后退并且刷新的效果的,完整代码如下: window.location.href=document.referrer;

  • 前端内置对象 面向对象

    document document.referrer//获取说那你个跳转的地址(需要服务器环境) 2.locati...

  • jQuery选择器

    slice (0,-1) 可以从后往前查字符串 document.referrer; 存储源页面 document...

  • referrer

    referrer 属性可返回载入当前文档的文档的 URL。 document.referrer:可直接返回当前文档...

  • js 小操作

    获取上一个页面的urlconsole.log(document.referrer)页面关闭之前触发的函数 禁止手机...

网友评论

  • 梦夕梦:此处应该有掌声,👏👏👏
    一直没弄懂js😭😭😭,
    作者的干货,我得好好学学,
    前端王睿:感谢你的鼓励,我也是刚开始创作,前端经验也不够丰富,希望能与大家一同进步!:grin:

本文标题:document.referrer的用法

本文链接:https://www.haomeiwen.com/subject/safxzttx.html