如何在不重新加载的情况下更改浏览器栏网址

Posted

技术标签:

【中文标题】如何在不重新加载的情况下更改浏览器栏网址【英文标题】:How to change browser bar url without reload 【发布时间】:2015-02-14 14:45:03 【问题描述】:

我有一个网站,在浏览器栏中的主页上生成以下 URL:

http://example.com/int/bdf/eng/

我想在不重新加载页面的情况下将其更改为以下内容:

http://example.com

是否有可用的 IE8+ 解决方案?

我知道window.history.pushState("", "", ""); 但是如何使用它?还是使用 htaccess 文件会更好?

【问题讨论】:

当您说更改它时,您是指在页面上实时更改它,还是只是将所有内容重写到索引中? jquery: change the URL address without redirecting?的可能重复 听起来您只需要配置服务器以在/而不是/int/bdf/eng/下提供您的内容,因为我们目前不知道内容是如何生成的,很难说如何改变它是这样的。只需将 index.html 文件移动到其他目录即可。 它是像 wordpress 这样的 cms 系统的扩展,它在访问起始页时将参数 /xx/xx/xx 添加到 url...所以我的意思是 url 必须实时更改.. .best case无需重新加载 坦率地说,我会通过“不在乎”来解决这个问题。如果您收到重定向 - 那又如何?该网址仍然有效。向用户显示什么并不重要。如果您想以任何模糊的理智方式对其进行更改,则必须编辑 CMS 代码。由于您甚至没有告诉我们它是什么 CMS,因此我们无法为您提供帮助。 【参考方案1】:

根据W3C standards,您可以使用位置哈希属性。

对于这样的示例 URL:

http://www.example.com/test.htm#part2

location.hash 值将是:“#part2”和here is a JSFiddle,这将向您展示如何使用它。

【讨论】:

以上是关于如何在不重新加载的情况下更改浏览器栏网址的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 如何在不重新加载页面或使用 # 或的情况下更改浏览器地址栏中的 URL?

有没有办法在不刷新页面的情况下更改浏览器的地址栏?

如何更改浏览器网址框中的网址?

如何在不重新加载页面的情况下更改 URL?

Backbone.js 在不重新加载页面的情况下更改 url

更改浏览器栏中的网址而不重新加载页面[重复]