更改浏览器地址栏中的URL而不重新加载现有页面

Rad*_*ire 29 html javascript url

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

我正在寻找一种方法,使用我当前的javascript动画使我的内部链接功能正常,而不会在您点击它们时导致页面重新加载 - 但我希望在浏览器中更新URL.

许多网站都这样做,这是一个很好的例子:http://grooveshark.com/#!/ search?q = adf

如何在没有页面重新加载的情况下获取更新URL?


更多细节:

目前我的页面上的链接看起来像<a href="#aboutus">About Us</a>,这将带您<div id="aboutus"></div>通过javascript.

javascript看起来像:

$("#navigation a").click(function(e){
  animate(..scroll to section..);
  e.preventDefault(); // <==========
});
Run Code Online (Sandbox Code Playgroud)

我相信"e.preventDefault()"是导致URL不被更新的原因,但是如何在更改URL时阻止浏览器重新加载页面?

其他网站如何做到这一点?这种方法叫什么(所以我可以进一步研究它)?

谢谢.

Maz*_*ani 25

这是一个类似的问题.

这是一个例子:

function processAjaxData(response, urlPath){
    document.getElementById("content").innerHTML = response.html;
    document.title = response.pageTitle;
    window.history.pushState(
        {
            "html":response.html,
            "pageTitle":response.pageTitle
        },
        "",
        urlPath
   );
}
Run Code Online (Sandbox Code Playgroud)