Вход

Просмотр полной версии : Ajax. Работа с историей. Отследить нажатие "назад/вперед"


Dorian_bs
15.12.2011, 00:39
Всем привет. При написании сайта на 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
Все! Спасибо! Разобрался!)