如何更改浏览器地址栏,而无需重新加载页面 – HTML / Javascript

可能重复:
GitHub如何改变URL而不是重新加载?

嗨伙计,

我注意到,Github.com不会强制用户在浏览存储库时下载网页,而是使用AJAX来刷新页面内容。

Github还将浏览器地址栏更改为代表内容的实际地址。 我不知道如何实现这一点,如果不是通过使用#中的#井号标签。


简而言之: github使用ajax加载新的网页,而不使用井号标签。 他们如何做到这一点?


有任何想法吗?

通过使用:

window.history.pushState("string", "Title", "newUrl"); 

这是HTML 5中的新function。

您的url将更改为newUrl而无需重新加载页面。

注意:方法中的标题arg不会改变html页面的标题。 这是用来命名浏览器历史logging中的页面,当你回去然后继续。

看看HTML5的历史api 。 如果你打算使用它,得到一个图书馆包装它,甚至可能增加一个回退到位置哈希将是一个好主意。

https://github.com/browserstate/history.js看起来不错,快速看看它。;