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

Как изменить адресную строку браузера без перегрузки страницы - HTML/Javascript

Возможный дубликат:
Как GitHub изменяет URL, но не перезагружает?

Привет, люди,

Я заметил, что Github.com не заставляет пользователей загружать веб-страницы при просмотре репозиториев, но вместо этого использует AJAX для обновления содержимого страницы.

Github также изменяет адресную строку браузера на реальный адрес, представляющий контент. Я не знаю, как реализовать это, если не используя # hashtags в URL-адресе.


Вкратце: github использует ajax для загрузки новых веб-страниц без использования хэштегов. Как они это достигают?


Любые идеи?

4b9b3361

Ответ 1

Используя:

window.history.pushState("string", "Title", "newUrl");

Это новое в HTML 5.

Ваш url изменится на newUrl без перезагрузки страницы.

Примечание. title arg в методе не изменит заголовок страницы html. Это используется для того, чтобы называть страницу в истории браузера, вы можете вернуться назад, а затем продолжить.

Ответ 2

Посмотрите историю HTML5 api. Если вы планируете использовать его, получение библиотеки, обертывающей ее и, возможно, даже добавление резервной копии к хэшам местоположений, было бы хорошей идеей.

https://github.com/browserstate/history.js выглядит неплохо из-за быстрого просмотра.