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

时间:2012-11-16 18:10:14

标签: javascript url

Shopify如何做到这一点?访问他们的网站,点击“功能”链接,您会看到浏览器地址栏中的网址显示:

http://www.shopify.com/tour/sell-online

然后点击任何子链接,您将看到地址栏中的URL在不使用哈希值的情况下发生更改,并且没有页面翻转。

我不认为他们正在使用ajax来更改内容,因为它似乎都包含在页面上的隐藏div中,但无论如何,您显然可以使用客户端技巧更改URL。感谢您的帮助?

2 个答案:

答案 0 :(得分:9)

您使用新的HTML5历史记录API推送新状态。

此处为the MDN documentationa good tutorial

请注意,这样做通常很痛苦(您必须正确管理应用程序的状态)和it doesn't work with IE9。它几乎总是与ajax结合使用:即使整个页面没有重新加载或更改,它也是允许动态加载的内容可加入书签的解决方案。

答案 1 :(得分:2)

查看pushState,但请注意,并非所有浏览器都支持此功能。