Подтвердить что ты не робот

Изменить 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(); // <==========
});

Я считаю, что "e.preventDefault()" - это то, что заставляет URL-адрес не обновляться, но как я могу предотвратить перезагрузку страницы браузером при изменении URL-адреса?

Как это делают другие сайты? Что называется этим методом (так что я могу продолжить его изучение)?

спасибо.

4b9b3361

Ответ 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
   );
}

Ответ 2

Мне кажется, что все это делается с AJAX. #! в URL-адресе приводит к тому, что браузер интерпретирует оставшуюся часть URL-адреса в качестве якоря. Якоря не вызывают перезагрузки страниц (на самом деле сервер никогда не увидит, какой якорь находится в браузере в ходе обычный HTTP-запрос). Когда URL-адрес изменяется, Javascript берет верх, проверяет запрос и загружает все, что подходит с сервера, используя веб-службы.

Я не рассматривал это слишком подробно, но это то, что мне кажется.