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

Rad*_*Hex 35 html javascript ajax jquery

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

嗨伙计,

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

Github还将浏览器地址栏更改为表示内容的真实地址.我不知道如何在网址中使用#hashtags来实现这一点.


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


有任何想法吗?

eup*_*a83 47

通过使用:

window.history.pushState("string", "Title", "newUrl");
Run Code Online (Sandbox Code Playgroud)

这是HTML 5中的新功能.

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

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


Thi*_*ter 10

看看HTML5历史api.如果您计划使用它,获取一个包装它的库,甚至可能添加一个回退到位置哈希将是一个好主意.

https://github.com/browserstate/history.js从快速浏览看起来并不坏.