常见一种情况,例如支付:

有如下三个页面:入口页面,填写金额页面,支付成功页面

其中支付页面在支付成功有会有一个返回上一页的按钮,点击就返回上一页,或者点击浏览器返回上一页会出现继续进入输入金额的页面。

现在解决这个问题

关键点:

history.replaceState(null, null, document.referrer);

document.referrer(改属性非常的脆弱,参考:http://driftcloudy.iteye.com/blog/986265)

location.replace

方案1:

添加中间空白页面

agency.html,输入金额页面跳转和支付成功跳转,都是跳转到这个页面。

 if(/order\.html/.test( document.referrer)){window.location.href = window.ptDomain + "person/welfare";}else{history.back();}

切记跳转代理页面的时候不要用location.relace("xx/agency.html");
这样处理的话会把来源页面的历史记录替换成代理页面,这样就无法判断来源了

输入金额页面:

替换当前页面的历史记录为代理页面:

location.replace("./agency.html");

支付成功的页面直接:

location.history.back()


方案2,不需要中间件:

a.html


 <p>我是aaaaaaaaaaaaaaaaaaa</p><a href="./b.html">去bbbbbbbbb</a>

b.html

<p>我是b</p><a href="c.html"> 去ccccccccc</a><script>history.replaceState(null, null, document.referrer);console.log("后:",window.history)</script>

C.html

<body><div id="wrap"></div><p οnclick="javascript:deleB()">我是c.html,点击跳过b</p>
<script>function deleB(){history.back();}console.log(document.referrer)</script>
</body>

注意:

如果涉及跨域,必须使用代理的方式,history.replaceState不支持不同域名,location.replace没有跨域问题,history.replaceState和location.replace都可以删除当前页面的历史记录替换成指定的

返回上一页跳过中间页面,返回上一页跳过敏感页面相关推荐

  1. elementUI + vue 地址跳转:无法返回上一页 - 解决篇

    elementUI + vue 项目:浏览器无法返回上一页 ?总是停留在当前页面? 代码块1: 不能正常返回上一页 // 成功之后执行跳转 this.$router.pushthis.$router. ...

  2. easyUI分页中,如何实现页面跳转,再返回时,仍然到跳转前页数。(含页面显示条数)

    easyUI中,分页情况下,跳转到其他页面修改数据,再返回时,相当于重新打开此页面,即显示第一页. 这样很不方便.故提出跳转回修改前的页面的需求. 通过网上搜索,了解到实现页面跳转回去的基本原理是:传 ...

  3. 苹果微信html页面缓存,Ios中微信页面返回上一页去除缓存几种常见思路

    前言 这篇文章主要讲解决思路,不对各种概念进行过多讲解. 问题描述 开发微信H5页面的时候,在Ios微信内置浏览器中点击返回按钮返回上一页时,上一页面不会被刷新. 在浏览器缓存机制中,在返回上一页的操 ...

  4. html ios返回后刷新页面,Ios中微信页面返回上一页去除缓存几种常见思路

    前言 这篇文章和第,.年过事工宗据指数遍互业经搞断果会主要讲解决思路,不对各种概念进行抖要支圈者器说是事天开的.年后编定功口小发还应久剑过多讲解. 问题描述 开发微信H5页面的时候,在Ios微信内置浏 ...

  5. html里怎样返回首页,返回上一页-html页面返回上一页面怎么写

    提供3种方法: 1.超链接返回上一页. 返回上一页 2.按钮返回上一页. 3.图片链接返回上一页. [color=#]几秒钟后[/color]自动返回上一页代码:(加入两个head间,表示3秒) fu ...

  6. java 返回上一个页面_页面返回上一页浏览位置

    1.如果上一页是静态页面,可以用 history.go(-1)方法: go() 方法可加载历史列表中的某个具体的页面. 该参数可以是数字,使用的是要访问的 URL 在 History 的 URL 列表 ...

  7. javascript 跳转页面 关闭当前页面 返回上页面

    //跳转页面 1.window.location.href     //跳转到的页面 2.如何有form  表单的话 document.form[0].action  =  //跳转的action  ...

  8. jsp页面返回上一页,在两个页面死循环

    例子:a页面进入b页面,然后b页面进入c页面,c页面能返回到b页面,但是b页面返回不能到a页面,只能回到c页面,然后就是b,c页面之间返回的死循环. 一般我们写返回上一页面,用history.go(- ...

  9. h5 跳转上个页面刷新_关于javascript跳转与返回和刷新页面

    javascript中window.open()与window.location.href的区别 1.window.open('index.html') 表示新增一个窗口打开 index.html 这 ...

最新文章

  1. 【java】浅谈注释
  2. Eclipse自动注册Servlet:web.xml注册和@Servlet注解 实现注册
  3. 剑指 offer 树的子结构
  4. 计算某一段程序消耗的内存和时间【Java】
  5. 硕博士的朋友圈都有哪些特点?
  6. LINQ to SQL
  7. 2016重庆计算机一级考试题型,重庆计算机一级考试真题2016年最新(笔试+上机)
  8. mysql 缓存优缺点_MySQL查询缓存的优缺点
  9. 汇编的接触——基础知识
  10. Java开源内容管理CMS系统J4CMS集成到JTM
  11. python调用百度查询关键字_Python模拟搜索百度关键字
  12. 《回话的技术》阅读笔记
  13. Win11系统的显卡驱动安装的详细方法步骤
  14. SEGGER Embedded Studio 搭建开发环境
  15. fprintf用法解析
  16. Django | ORM choices参数详解
  17. jQuery删除表格中指定行
  18. 分享|小程序游戏在自有APP上的正确运行方法
  19. 学习Cortex-M:三种关中断方式
  20. SCS【9】单细胞转录组之构建细胞轨迹 (Monocle 3)

热门文章

  1. LINUX驱动Makefile模板
  2. 过来人对于在校生找工作的一点看法
  3. 学生成绩管理系统/学生信息管理系统
  4. 一条比较复杂的update sql语句
  5. 传苹果开发ChatGPT类的AI产品;iPhone 15 Pro系列或将涨价;PyTorch 2.0 发布 |极客头条
  6. Ubuntu16.04安装 有道词典.deb
  7. 《Web全栈工程师的自我修养》读书笔记
  8. Linux高级应用(九)Linux内核的原理和配置
  9. 速递!MongoDB最新书籍出版啦:MongoDB进阶与实战-微服务整合、性能优化、架构管理
  10. 小码哥底层班学习笔记大纲