3

可能重复:
修改 URL 而不重新加载页面

我发现在 Facebook 中,如果我单击左侧部分的NotesMusic链接,只有中心部分会在 URL 更改时刷新,从 www.facebook.com 更改为 www.facebook.com/ Notes

据我所知,更改 URL 将触发整个页面重新加载。Facebook 对其网页有什么魔力?

4

2 回答 2

3

神奇的是history.pushState()

例子

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

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

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

于 2012-12-27T12:10:07.027 回答
1

您可以使用 javascript 命令(如 pushState/replaceState/popstate)来操作浏览器历史记录

例子:

function processAjaxData(response, urlPath){
     document.getElementById("content").innerHTML = response.html;
     document.title = response.pageTitle;
     window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
 }
于 2012-12-27T12:10:44.557 回答