js 页面回退 防止页面叠加 url传值

背景需求:

在页面a点击触发某一事件,跳转到页面b。

在页面b更新某一数据后,跳转回页面a。更新的数据传入页面a的url中。


一开始觉得很简单,觉得只要用window.location.href = "...." 就可以了。

即能跳转页面,又能实现传值。

但是后来发现这样写有一个问题:页面b跳转的实际上是另一个页面c。也就是说,路径实际上是 a--> b--> c

当在页面c点击返回按钮时,会先到页面b,再到页面a。

页面数少时,这样似乎也没什么大问题。

可问题是,当反反复复进行数据更新时,就会发生大量页面重叠。当我想要返回到首页时,就要不停地点“返回”,不停地呈现之前操作过的页面。

为此,百度了很久。但是大多数都是location.href, 都要跳转页面。用history.go()或者history.back()的话,只能返回页面,不能实现url的传值。

也有看到document.referer。但是这个方法获取的数据为只读,并不能做修改。


最后看到一个比较好用的方法:

window.location.replace(url);

url可以自己先定义,把需要改变的参数也放在里面。

replace之后就把当前页面的url值替换啦。

然后再根据需求进行一些页面的判断,就不用页面跳来跳去的了。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值