需求

今天提出了一个需求,就是在使用第三方支付的时候,如果用户在支付页面直接点击浏览器的返回页面,会直接返回到下单的页面,但此时订单已经下过了,再次返回到下订单的页面,展示之前的内容显然是不合理的,现在的需求就是,用户在第三方支付的时候,点击浏览器的返回按钮时,返回到当前下的订单的订单详情页面。

寻找解决方法

你可能会说,单击返回的时候跳转到订单详情页面不就行了么!那么不好意思,你怎么知道或者说这么做是没办法跳转过去的,因为从支付页面返回没有传回来任何的参数,程序根本就什么都不知道,由于是公司的项目,这里就不贴图了(程序员操守)。

经过思考,研究,想到如果在页面跳转到支付页面之前,先往页面的历史记录里添加一条订单详情的历史记录是不是可以解决问题。

解决问题

经过插文档和mdn发现,如果想要往历史记录里加入一条记录,但是页面不发生变化。需要使用history.replaceState(null,””,``);

最终解决

1
2
3
4
5
6
history.replaceState(
null,
"",
`http://192.168.1.11:8080/tw/xxx/orderdetail/${xxx}`
);
window.location = xxx.goUrl;

效果图暂不展示,如果需要,可直接demo嘛!

如果能够帮助到你,是小编最大的荣幸

当然 有 不好的地方 请大家帮忙指出 学习永无止境

小编一直认为 人外有人 天外有天 一起学习 共同进步

让我们共同加油吧!