前端返回页面,返回第一次进入该页面的上一个页面
前端第一次进入一个A页面,然后再到里面不知道点了几个页面,也不知道后面有没有重新进入A页面。然后现在需要在A页面中点击一个返回按钮,点击这个返回按钮就能回到第一次进入该页面的上一个页面。
应用场景:原生或者jQuery。某些有个人中心,且个人中心有我的订单的项目(商城类项目)。当你第一次点击我的订单时,然后再到里面点了几下tab(jq的话,我看我们公司以前项目就是带参数跳转)列入:
<a href="order_list.html?type=">全部a><a href="order_list.html?type=WAITPAY">待付款a><a href="order_list.html?type=WAITSEND">待发货a><a href="order_list.html?type=SEND">已发货a><a href="order_list.html?type=WAITCCOMMENT">待评价a>
这个时候如果想返回上个页面好多都是用的 window.location.href=“A页面的上一个页面”。
但是思考一个问题,如果 A页面的上一个页面,是一个不确认的页面这该怎么办?
然后很多人应该想到了使用window.history.go()。确实,但是怎么获取要返回多少层了?
我的思路是:
第一次进入这个页面把window.history.length存进localStorage中。如果这个值存在就不存(防止第一次进入了后面再多次进入)。然后再获取最后一次进入A页面的window.history.length,使用最后一次减去第一次的值,这就是我们要返回的层数。
let localLeng=JSON.parse(localStorage.getItem('leng')) if(!localLeng){localStorage.setItem('leng',window.history.length)}let backNumber = window.history.length-localStorage.getItem('leng')
再到需要的地方调用
window.history.go(-backNumber)localStorage.setItem('leng',null)
本来我也是这样的,但是不知道为什么总退不出去。然后下面一段代码换了下
for(let i=0;i<=backNumber;i++){window.history.back()}localStorage.setItem('leng',null)
成功返回第一次进入A页面的上一个页面
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
