在浏览器地址栏中更改网址,无需重新加载现有页面

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

我正在寻找一种方法,使我的内部链接功能使用我当前的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(); // <==========
});

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

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

谢谢。


这是一个类似的问题。

这里是一个例子:

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

在我看来,整个事情都是通过AJAX完成的。 #! 在URL中导致浏览器将URL的剩余部分解释为锚点 - 锚点不会导致页面重新加载(事实上,服务器在正常的HTTP请求过程中永远不会看到浏览器处于什么位置) 。 当URL更改时,Javascript接管,检查查询字符串,并使用Web服务从服务器加载适当的任何内容。

我没有深入研究过,但这就是我看起来的样子。

链接地址: http://www.djcxy.com/p/70291.html

上一篇: Change URL in browser address bar without reload existing page

下一篇: change url without redirecting using javascript