更改URL而不重新加载

vtn*_*tni 1 html javascript

我有时会在某些网站上看到像Facebook或Play商店这样的谷歌,通过点击链接更改网址(不是#blah),但是网站不会重新加载.我可以使用后退/前进,所以它可能不是javascript,我想.

有谁能说我如何在网站上实现它?谢谢

Rus*_*oms 6

它使用pushState,它使用javascript和HTML5与pushState兼容的浏览器完成.以下是一些文档:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

这些文档的引用:

假设http://mozilla.org/foo.html执行以下JavaScript:

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");
Run Code Online (Sandbox Code Playgroud)

这将导致URL栏显示 http://mozilla.org/bar.html,但不会导致浏览器加载bar.html甚至检查bar.html是否存在.

可以通过这种方式更改URL,并使用javascript呈现新页面.我通过使用Backbone.js来做到这一点,但还有其他工具可以做同样的事情.#除了它们摆脱哈希之外,它与其中包含的URL大致相同.Backbone.js #默认使用a ,但可以配置为使URL显示正常.

这是一个关于如何使用Backbone执行此操作的问题