从浏览器 url 中删除查询字符串,而无需重新加载页面


Strip query string from browser url without reloading page

我知道这个问题在堆栈溢出上被问了一千次,但没有一个与我在这里需要完成的事情真正相关。

我有一个表单,提交时它会在页面重新加载后向 url 添加一个查询字符串。 我只是想知道一种无需重新加载页面即可从浏览器 url 中删除此查询字符串的方法。

目前,在下面,用户将提交表单,页面重新加载并在浏览器 url 中包含查询字符串,然后以下内容将运行,但它会第二次重新加载页面。 我怎样才能让它到达它不会重新加载 2 次但仍从 url 中删除查询字符串的地方?

window.location.href = window.location.href.split('?')[0];

大多数浏览器不允许你在不提交页面的情况下以编程方式更改地址。您可以通过在页面上使用 iframe 来混淆它。然后,框架将加载内容,但 URL 将是主页的 URL。

我想

你正在寻找: window.history.replaceState