javascript:location=document.referrer;和javascript:history.go(-1);区别:

返回上一页,在PC端我们可以使用:history.go(-1)或者history.back(),可以正常返回第一层。这样,我们不需要上一页的 url 具体是什么,只要使用 history 一般都没啥问题。

但是在移动端,如果想要返回上一页。比如从A页面跳到B页面,如果B页面想返回A页面,为了防止不会跳错,必须要有一个 <  按钮,给它加 history.go(-1) ,返回上一层。

<a href="javascript:history.go(-1)" class="header-back jsBack">返回</a>

那如果我们没有返回上一页的 < 的按钮,在手机上怎么操作才会返回上一页,比如:从微信分享进来的,进入的是微信内页,此时,内页就是第一页,它没有上一页,要怎么返回?这时点返回按钮是没有反应的,不是一个好的用户体验,十有八九的人会误以为是BUG,这绝对是个坑爸的问题。

移动端无论是原生app还是传统的网页,返回上页是一个比较强烈的需求。

javascript 有一个可以获取前一页面的URL地址的方法:document.referrer

document.referrer 的来源

  1. referrer 属性可返回载入当前文档的文档的 URL【摘自W3CSHCOOL】, 如果当前文档不是通过超链接访问的,那么当前文档的URL为NULL,这个属性允许客户端的 javascript 访问 HTTP 头部;
  2. referrer 属性,我们可以从 http 头部获取

无法获取 referrer 信息的情况

下面的场景无法获得 referrer 信息,以下前8条属于:

  1. 直接在浏览器中输入地址
  2. 使用location.reload()刷新(location.href或者location.replace()刷新有信息)
  3. 在微信对话框中,点击进入微信自身浏览器
  4. 扫码进入微信或QQ的浏览器
  5. 直接新窗口打开一个页面
  6. 从https的网站直接进入一个http协议的网站(Chrome下亲测)
  7. a标签设置rel="noreferrer"(兼容IE7+)
  8. meta标签来控制不让浏览器发送referer
  9. 点击 flash 内部链接
  10. Chrome4.0以下,IE 5.5+以下返回空的字符串
  11. 使用 修改 Location 进行页面导航的方法,会导致在IE下丢失 referrer,这可能是IE的一个BUG
  12. 跨域
  13. <meta content="never" name="referrer">

怎么解决无法获取 referrer 的情况,还没有很好的方法,尽量避免吧。

转载于:https://www.cnblogs.com/xiaozhouyuxiaohou/p/9211783.html

document.referrer和history.go(-1)退回上一页区别相关推荐

  1. 微信中苹果h5页面用window.history.go(-1)返回上一页页面不会重新加载/刷新

    微信中h5页面用window.history.go(-1)返回上一页页面不会重新加载问题问题描述:在实际开发中遇到这样一个问题,业务需求涉及到返回上一页问题,第一时间想到了window.history ...

  2. ant design pro,删除最后一页退回上一页

    首先需要三个变量,分别是删除后的总数以及页码还有每页条数: var nowDatasSize: number = -1var currentPage: number = 1;var pageSize: ...

  3. 前端小知识:返回浏览器上一页(back、go、referrer)

    官方文档(document.referrer): https://developer.mozilla.org/zh-CN/docs/Web/API/Document/referrer   官方文档(h ...

  4. lt;a href=quot;javascript:history.back();quot;gt;返回上一页lt;/agt;

    Code: <a href="javascript:history.back();">返回上一页</a> (history.back()原页表表单中的内容会 ...

  5. html实现返回上一页的几种方法(javaScript:history.go(-1);)

    html实现返回上一页的几种方法(javaScript:history.go(-1);) 一.总结: 1.javaScript:history.go(-1); 二.方法 1.通过超链接返回到上一页 & ...

  6. html5返回上一页不刷新,javascript解决在safari浏览器中使用history.back()返回上一页后页面不会刷新的问题...

    我们知道,在JavaScript中提供了一个window.history.back()方法用于返回上一页,另外也可以使用window.history.go(-1)返回上一页(跳转). 在其他的主流浏览 ...

  7. js返回上一页并刷新代码整理 转

    返回上一页并刷新在此功能有利于用户的体验,是每一个web开发人员所必备的一项,长话短说,今天介绍实现此功能的一个方法,需要了解的朋友可以参考下 一:JS 重载页面,本地刷新,返回上一页 复制代码 代码 ...

  8. js返回上一页并刷新代码整理

    一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a>  ...

  9. js返回上一页并刷新

    window.history.go(-1);//返回上一页不刷新 window.location.href = document.referrer;//返回上一页并刷新 转载于:https://www ...

最新文章

  1. 新晋院士:直到硕士毕业前都想做公务员,现在只对科研感兴趣
  2. FLASHCS3多文件上传源代码(类似uccenter社区)
  3. c++ opencv mat 最大值,数据类型
  4. Vue中实现清空数组和清空el-table
  5. Linux sem_init函数用法
  6. mysql一张表最多多少索引_MySQL一个索引最多有多少个列?真实的测试例子
  7. java string 数组 个数,Java - 定义一个接收String的方法,并返回一个整数数组,其中包含每个元音的数量...
  8. 【作业报告】作业5 四则运算 测试与封装 5.2(已更新)
  9. python总结与思考_Python小结 – pip 升级包总结
  10. labview用户登录与管理界面设计
  11. win7专业版激活方案
  12. c语言自动变量全局变量,C语言全局变量的一些简单介绍
  13. MXF视频文件损坏的修复方法
  14. vue-awsome-swiper安装和css引入问题
  15. 入门级蛋白质结构查看PyMol的使用——PyMol常用命令
  16. winapi消息大全
  17. Android热修复学习之旅开篇——热修复概述
  18. 【程序设计训练】棋盘
  19. 无限渗透实战(2)--绕过认证上校园网
  20. iview表格表头上添加icon图标

热门文章

  1. 程序员的转正述职报告
  2. 四川E900s-Hi3798MV100-黑盒8G版-黄标签高安版-5800-2AHPM6B-当贝桌面强刷卡刷包
  3. 汇编语言里 eax ebx ecx edx esi edi ebp esp这些都是什么意思啊
  4. 《认知觉醒》+《认知驱动》
  5. 报错 Error from server (InternalError): an error on the server (““) has prevented the request from suc
  6. Teamvier提示商业用途限制使用的解决方案
  7. 电脑卡顿反应慢怎么办?这几招教给你!
  8. 音质卓越颜值在线,五款高人气头戴式HIFI音质蓝牙耳机排名
  9. 哪一款蓝牙耳机音质最好?2023发烧级音质蓝牙耳机推荐
  10. 支付宝出安全漏洞,买了账户安全险的也要小心