背景需求:
在页面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值替换啦。
然后再根据需求进行一些页面的判断,就不用页面跳来跳去的了。