You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

history.pushState路径跳转问题:如何将URL从url.com/x/y直接修改为url.com/z?

实现URL从url.com/x/y跳转到url.com/z的方法

嘿,这个问题其实很好解决,核心就在于你传给history.pushState的第三个路径参数的写法~

当你执行history.pushState({"z":"z"}, "" , "z")时,传入的"z"是相对当前页面路径的相对路径——当前页面路径是/x/y,浏览器会自动把相对路径z解析成/x/z,这就是为什么URL变成了url.com/x/z。

要让URL直接跳转到根目录下的z,你可以用下面两种方法:

方法1:使用根相对路径(推荐)

在路径前加上斜杠/,告诉浏览器从域名的根目录开始解析这个路径:

history.pushState({"z":"z"}, "", "/z");

执行这段代码后,地址栏的URL就会变成url.com/z,而且不会触发页面刷新,完美符合pushState的无刷新特性。

方法2:使用完整绝对URL

如果你需要明确指定完整的域名(比如特殊的跨域名场景,不过同域名下不太推荐),也可以直接传入完整的URL:

history.pushState({"z":"z"}, "", "https://url.com/z");

这种写法虽然有效,但灵活性较差,一旦域名变更就得修改代码,所以优先推荐第一种方法。

内容的提问来源于stack exchange,提问作者The S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 05:07:49