如何使用history.pushState更改所有url

How to change all url with history.pushState

提问人:whatislove codeis 提问时间:8/24/2023 最后编辑:Xab Ionwhatislove codeis 更新时间:8/25/2023 访问量:45

问:

当我使用 history.pushState(newUrl) 更改我的 URL 几次,之后我尝试返回一个页面时,我遇到了一个错误,我发现如果我执行 pushState(newUrl/) 而不是 (newUrl),这个错误会消失,但现在 pushState 不会替换 URL,而是按类型添加它 我第一次在“mySite.com”上调用pushState时,我得到“mySite.com/newUrl/” 第二次在“mySite.com”上调用pushState时,得到“mySite.com/newUrl/newUrl/”

方法 history.replaceState 给出了相同的结果

所以这里有一个问题:我怎样才能在不重新加载页面的情况下始终替换 URL 并始终获得“mySite.com/newUrl/”

好吧,我用谷歌搜索了一下,什么也没找到,请帮帮我

javascript url 浏览器-history

评论

1赞 CBroe 8/24/2023
所以你刚刚发现了相对 URL 是如何工作的......使用以根相对 URL(以前导斜杠开头),以避免将路径与您“所在”的当前路径组合在一起。

答:

0赞 David 8/24/2023 #1

只需使用您输入的绝对 URL,在相对 URL 中添加前导斜杠即可。pushState()

根据 MDN 文档:

新 URL 不需要是绝对的;如果是相对的,则相对于当前 URL 进行解析。