window.location.replace(‘url‘)页面跳转

本文探讨了一个用户在查看条款时遇到的页面跳转问题。当用户从页面A跳转到页面C,中间经过页面B但未显示,由于B页面使用window.location.href导致浏览器记录了A、B、C三个页面。当用户点击返回时,由于B页面的脚本会再次跳转到C,造成无法正常返回到A页面。为解决此问题,提出了使用window.location.replace(url)方法,该方法会替换当前页面,不让B页面进入历史记录,从而确保用户点击返回能正确回到页面A。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天有个需求是 用户查看条款,条款时间与下单时间不匹配跳转404,然后返回还是显示条款,实际需求是直接返回详情页,当时用的是window.location.href = 'url'; 不可以,仔细查看代码,终于发现了原因。就是用户从上一个页面 a 跳转到目前看到的这一个页面 c,其实中间还有一个页面 b,只是用户看不到,因为从 a 跳转到 b 后,执行 b 的脚本,b 的脚本有下面这句:window.location.href = "c.html";

所以页面嗖的一下就跳到了 c 页面,但是浏览器记录却记录了三个页面:a, b, c.
这个时候点击返回按钮从 c 就是返回到 b,而 b 又会马上跳转到 c,所以就出现了点击返回按钮,页面刷新后,还是停留在原来页面的情况。

解决方案

window.location.replace(url) 将目前浏览器的地址替换掉,调用这个方法的网页,将不会被写入浏览记录。所以,网页 b 不会被写入浏览记录,从网页 a 经过 b 跳转到 c,再点击返回按钮将跳转到 a.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端程序猿微凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值