变更网址在浏览器地址栏中没有重载现有页面[复制]变更网址在浏览器地址栏中没有重载现有页面[复制](C

2019-05-17 11:51发布

可能重复:
修改URL无需重新加载页面

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

很多网站做到这一点,这里是一个很好的例子: 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被改变重新加载页面?

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

谢谢。

Answer 1:

这里有一个类似的问题 。

下面是一个例子:

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


Answer 2:

像整个事情是用AJAX做在我看来。 该#! 在URL中导致浏览器解释URL的剩余部分作为一个锚 - 锚不会导致页面重新加载(事实上,服务器永远不会看到浏览器是在一个正常的HTTP请求的过程中有什么锚) 。 当URL变化,使用Javascript接管,检查查询字符串,并加载无论是使用Web服务的服务器为宜。

我没有看过深入太多,但这是它看起来像我。



文章来源: Change URL in browser address bar without reload existing page [duplicate]