Перепишите документ.месте без нагрузки
Я разрабатываю систему, которая на 100% является ajax, за исключением, конечно, первого запроса.
Я заинтересован в изменении адреса в документе.расположение, используя javascript. Но я не хочу, чтобы браузер загружал страницу в этом "новом" месте.
Кто-нибудь знает, как я могу это сделать?
3 ответа:
Чтобы переписать все расположение, а не только часть "хэша", можно использовать API истории браузера, хотя в настоящее время он только кажется поддерживаемым в Gecko 1.9.3/Firefox 4.
history.replaceState({}, document.title, url)
Изменить весь URL-адрес без навигации невозможно, просто представьте себе проблемы безопасности , которые он может создать.
Вы можете изменить только
location.hash
, которая является частью URL-адреса, следующего за символом#
:location.hash = "foo";
Ваш url изменится на http://someurl.com/#foo
Вы можете использовать тот же метод, что и Gmail. Добавьте якорь в конец url-адреса, браузер не должен перезагружать страницу, но вы можете прочитать информацию в
document.location.href
и действовать по ней. Это также сохранит функциональность кнопки Назад неповрежденной (при условии, что ваш javascript поддерживает ее)Например
Первая страница-это
http://www.mypage.com/index.php
вы нажимаете на следующую "страницу", используя<a href="#page2">link</a>
, и она меняется наhttp://www.mypage.com/index.php#page2