Перепишите документ.месте без нагрузки


Я разрабатываю систему, которая на 100% является ajax, за исключением, конечно, первого запроса.

Я заинтересован в изменении адреса в документе.расположение, используя javascript. Но я не хочу, чтобы браузер загружал страницу в этом "новом" месте.

Кто-нибудь знает, как я могу это сделать?

3 2

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