返回上一页跳过中间页面,返回上一页跳过敏感页面
来源:互联网 发布:关键词排名优化小技巧 编辑:程序博客网 时间:2024/05/17 10:54
有如下三个页面:入口页面,填写金额页面,支付成功页面
其中支付页面在支付成功有会有一个返回上一页的按钮,点击就返回上一页,或者点击浏览器返回上一页会出现继续进入输入金额的页面。
现在解决这个问题
关键点:
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 onclick="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都可以删除当前页面的历史记录替换成指定的
阅读全文
0 0
- 返回上一页跳过中间页面,返回上一页跳过敏感页面
- asp 返回上一页并刷新页面
- 错误提示页面自动返回上一页
- 返回上一页并强制页面刷新
- javascript 刷新页面、返回上一页
- 返回上一页并强制页面刷新
- 页面序号和返回上一页
- 网页返回上一页刷新页面
- jsp html 页面 返回上一页
- jsp页面返回上一页,在两个页面死循环
- JS返回上一页-JS返回下一页-JS页面跳转
- 用history.go(-1)返回上一页,实现上一页页面刷新
- 如何实现返回上一页并刷新页面的功能
- jsp页面返回到上一页并刷新
- JS返回上一页并刷新页面,亲测有效
- 利用js控制页面刷新以及返回上一页刷新
- mui 返回上一页并刷新父页面列表
- js鬼混笔记:可靠的页面返回上一页刷新
- Java反射机制
- 【CF472G】【XSY2112】Design Tutorial 压位
- Jenkins基础入门-8-构建触发器之远程构建
- 从零开始搭建zabbix以及简单实例(based on 官方文档)
- hibernate查询
- 返回上一页跳过中间页面,返回上一页跳过敏感页面
- 关于eclipse安装失败的解决方法
- MOOC清华《面向对象程序设计》第8章:用代理模式实现延迟初始化
- 阿里云服务器部署JavaWeb项目步骤
- JDK文档阅读之RMI(远程方法调用)
- HDU 1061 Rightmost Digit
- loadrunner Web_类函数之web_reg_find()
- SDUT-3362 数据结构实验之图论六:村村通公路
- 单调栈