热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

由返回上一页并刷新页面想到的

返回上一页并刷新返回上一页,我们经常用history.go(-1)//返回上一页(括号中写-2代表返回

返回上一页并刷新

返回上一页,我们经常用

history.go(-1)//返回上一页(括号中写-2代表返回上两页)
history.back()//返回上一页

这个我很久之前的一篇文章中也提及了!https://www.xyhtml5.com/post/js_refrash ,但是有时候有这样的需求,我们在一个公共页面中进行了数据操作,操作完成之后用history.back()返回上一页,我们希望上一页的数据是改变的,但是由于是历史返回,上一页的数据还是历史数据,因此,我们用到了返回上一页并刷新。

self.location=document.referrer;

说到这里,有必要对self.location和document.referrer的应用做一下详细介绍了!

self.location应用

也是很久之前,我写了一篇网页防止黑客跨框架攻击的文章,里面用到了:


这里,我们应用到了一个self,其实,上面代码的实际作用就是防止别人用框架嵌套我们的网页,当然为了防止被人嵌入你的网页,也可以如下写:

if (top.location != self.location) {
top.location=self.location;
}

解释


1、self:当前窗口对象(如果是在iframe里,则为该框架的窗口对象)

2、top:父窗口对象

当然,这些前面都可以添加一个window对象,也就是可以如下写:

window.self

功能:是对当前窗口自身的引用。它和window属性是等价的。

注:window、self、window.self是等价的。

window.top

功能:返回顶层窗口,即浏览器窗口。

注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。

window.parent

功能:返回父窗口。

回到上面的正题

self.location 相当于 window.self.location,自身的浏览器地址,在没有嵌套页面的时候也相当于window.location

也就是页面跳转到 document.referrer 下面就来说一下document.referrer

document.referrer

这个主要是获取前一个访问页面的URL地址。

关于document.referrer的应用,除了上面的返回上一页,还有一个用途。用来做返回的跳转!(看到张鑫旭大神,前几天也写过类似这样的一个应用案例,好吧!我在这里再写一下!)

例如返回上一页的代码如下:

上面代码大部分是可以用的,但是有时候是不可以。微信分享进来直接是内页,没有上一页的情况,这个没有办法返回,点击是无效的!

针对这种情况,我们可以如下代码:

if (document.referrer === '') {
// 没有来源页面信息的时候,改成首页URL地址
$('.goback').attr('href', '/');
}

当没有来源的时候,返回改成首页,这样就是document.referrer的一个应用了!

document.referrer的浏览器兼容性问题


1、HTTPS默认会关闭referrer,需要通过meta来设置,设置方法如下:

2、直接在浏览器地址栏中输入地址;

3、使用location.reload()刷新(location.href或者location.replace()刷新有信息);

4、在微信对话框中,点击链接进入微信自身的浏览器;

5、扫码进入QQ或者微信的浏览器;

6、直接新窗口打开一个页面;

7、a标签设置rel="noreferrer"(兼容IE7+);

8、meta标签来控制不让浏览器发送referer; 例如:


其他兼容性测试如下:
































































































































































操作IE6IE7IE8IE9FirefoxChromeOperaSafari
直接在地址栏输入URL“”“”“”“”“”“”“”“”
从书签访问URL“”“”“”“”“”“”“”“”
从页面A点击超链接,跳转到页面B(target=”_self”)
从页面A点击超链接,跳转到页面B(target=”_blank”)
从页面A右键单击超链接,在新标签页中打开页面B-“”
从页面A右键单击超链接,在新窗口中打开页面B“”
拖动链接到地址栏“”无法拖动无法拖动“”“”“”“”“”
拖动链接到标签栏-“”“”“”“”“”“”“”
使用浏览器的前进、后退按钮
JS 修改 location.href“”“”“”
JS 使用 window.open“”“”“”“”
服务器重定向(302跳转)定向之前的页面定向之前的页面定向之前的页面定向之前的页面定向之前的页面定向之前的页面定向之前的页面定向之前的页面
页面 Meta Refresh“”“”“”“”“”转向页转向页转向页


推荐阅读
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
author-avatar
小唐永远支持小志
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有