Javascript 更改地址栏中的URL而无需重新加载

Javascript 更改地址栏中的URL而无需重新加载,javascript,Javascript,我发现了很多关于更改url(无需重新加载)的问题。 一些答案是-使用插件,使用location.hash…,或者重新加载 但是没有一个为我工作 在我的网站上有一个下拉菜单,在它的改变url参数应该已经改变 所以我想做的是: 我想在不重新加载的情况下将:www.foo.com?country=Germany更改为www.foo.com?country=Slovenia 我试图实现的目标是可能的吗?你可以在更新的浏览器中实现;在旧版本中,只能更改哈希。这似乎是一篇关于这个主题的好文章: 您需要的是H

我发现了很多关于更改url(无需重新加载)的问题。 一些答案是-使用插件,使用
location.hash
…,或者重新加载

但是没有一个为我工作

在我的网站上有一个下拉菜单,在它的改变url参数应该已经改变

所以我想做的是:

我想在不重新加载的情况下将:
www.foo.com?country=Germany
更改为
www.foo.com?country=Slovenia


我试图实现的目标是可能的吗?

你可以在更新的浏览器中实现;在旧版本中,只能更改哈希。这似乎是一篇关于这个主题的好文章:

您需要的是HTML5提供的
历史记录。它具有类似于
history.pushState(…)
history.popState(…)
的功能,允许您动态更改URL,而无需分配新的URL


很多网站都使用它,我怀疑,包括Facebook本身,如果你打开一个聊天框,在页面之间导航,聊天框就不会重新加载。这意味着所有新内容都是通过Ajax获取的,但是URL不会改变,是吗?但确实如此。我认为他们是通过
history.pushState(…)
来实现的,在这里,您只需将一个新状态推入历史堆栈,它只会更改页面的某一部分。您会发现一个非常好的教程。

您想更改URL地址栏中向用户直观显示的内容吗?为了什么?我无法想象基于安全性,浏览器会允许这样做。如果你能提供一个目的的话,也许我们可以提供一个替代方案。我有一个国家列表(下拉列表),关于它的更改,我想更改url。什么目的?六羟甲基三聚氰胺六甲醚。。。网站上的所有内容都更改了(没有)重新加载,所以我也想更改url。你看过这个答案了吗?请参阅此演示: