如何在不重新加载页面的情况下更改浏览器地址栏 - HTML / Javascript

时间:2011-04-09 21:03:32

标签: javascript jquery html ajax

  

可能重复:
  How does GitHub change the URL but not the reload?

嗨大家好,

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

Github还将浏览器地址栏更改为表示内容的真实地址。如果没有在网址中使用#hashtags,我不知道如何实现这个。


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


有什么想法吗?

2 个答案:

答案 0 :(得分:47)

使用:

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

这是HTML 5中的新功能。

您的网址将更改为newUrl而不重新加载页面。

注意:方法中的标题arg不会更改html页面的标题。这用于在浏览器历史记录中命名页面,包括你回去然后继续。

答案 1 :(得分:10)

查看HTML5 history api。如果您打算使用它,那么将图书馆包装起来,甚至可以添加后备点到位置哈希是一个好主意。

https://github.com/browserstate/history.js看起来并不坏看。