javascript - 防止 history.replaceState 附加到 url
问题描述
我正在使用window.history.replaceState
并遇到一些问题,因为它一直附加到 url。
它已被标记为这个问题的重复,我认为这是一个错误,因为当我使用该代码时,同样的问题正在发生,并且它不断将索引附加到 url,如下所述。
请在下面查看我的代码:
let index = 1;
function incrementIndexAndUpdateUrl() {
index++;
window.history.replaceState('Object', 'Title', `${window.location.href }/${index}`);
}
我遇到的问题是网址不断附加数字,因此它正在执行以下操作:
https://slackoverflowz.com/questions/ask/2/3/4
有谁知道代码应该如何更新网址,如下所示:
- https://slackoverflowz.com/questions/ask/2
- https://slackoverflowz.com/questions/ask/3
- https://slackoverflowz.com/questions/ask/4
还值得注意的是 url 是动态的,所以我不能硬编码路径。我只想更新 url 末尾的索引。
解决方案
由于您要附加一个/something
,因此您实际上是在更改路径名。因此,简单的方法是在更改之前存储原始文件:
let index = 1;
const path = location.pathname;
btn.onclick = incrementIndexAndUpdateUrl;
function incrementIndexAndUpdateUrl() {
index++;
window.history.replaceState('Object', 'Title', `${path}/${index}`);
console.log(location.href);
}
<button id="btn">increment</button>
推荐阅读
- ffmpeg - Microsoft Smooth Streaming 默认声明时间刻度为 10M
- vue.js - @vue/test-utils 中的 mount() 和 shallowMount() 抛出 TypeError: Cannot read property 'components' of undefined
- sql-server - SQL Server 用@parameter 替换子查询
- python - 在 keras 中实现 Grad-Cam 时出现未连接的梯度错误
- mongodb - 在mongoDb中插入数据时收集锁
- openshift - 基于 Openshift buildconfig 中内部版本号的动态标签
- kotlin - KotlinJvmOptions 使用IR 选项
- apache-spark - 如何在火花中读取具有多个分隔符的 CSV 文件
- r - geom_col() 在 ggplot 中的值彼此接近
- php - SensioLabs 安全检查错误 Symfony 5