Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ajax. Работа с историей. Отследить нажатие "назад/вперед" (https://javascript.ru/forum/misc/24011-ajax-rabota-s-istoriejj-otsledit-nazhatie-nazad-vpered.html)

Dorian_bs 15.12.2011 00:39

Ajax. Работа с историей. Отследить нажатие "назад/вперед"
 
Всем привет. При написании сайта на ajax столкнулся с проблемой.
Допустим, при нажатии на текст происходит загрузка нового "body" и меняется текст адресной строки с "/" на "/test" используя следующий код

history.pushState(null, null, 'test');


При обновлении страницы браузер автоматический переход на страницу "/test". Так как самой страницы "test" в html не существует, а является лишь адресом, я установил переадресацию на главную страницу (на ней всё происходит). При загрузке главной страницы я определяю, с какой страницы мы пришли:
document.referrer

и выполняю через условие соответствующую загрузку контента.

Тут и появляется проблема. Как сделать управление историей? Кнопками назад / вперед.
Сам браузер помнит, что предыдущая ссылка была "/", а сейчас "/test" при переходе назад / вперед. Но как отследить этот переход? Нажатие клавиш иль кнопок для выполнения условия сравнения адреса.

devote 15.12.2011 03:05

document.addEventListener('popstate', function() {
   ///
}, false);

Dorian_bs 15.12.2011 03:18

devote,
Спасибо!
Прошу прощения, но не могли бы Вы объяснить принцип работы?

Dorian_bs 15.12.2011 03:19

Все! Спасибо! Разобрался!)


Часовой пояс GMT +3, время: 08:05.