Comments 22
Как долго к этому приходили… Мне все это приходилось вручную реализовывать.
0
UFO just landed and posted this here
Сейчас с HTML5 History API мы можем отлавливать кнопки вперед, назад, используя метод pushState и событие popstate. В статье все хорошо описано. И в примере все работает (потыкайте по картинкам, а потом нажмите кнопку назад/вперед). HTML5 History API похож на
location.hash
magic, но только без магии и вместо хеша мы имеем реальный url, который можем кому-нибудь отправить или загрузить реальный документ тем же wget'ом.0
Думаю лучше, стандарт должен быть кроссбраузерным по идее. А когда свою навигацию строишь, приходится отлавливать такие глюки, как например в опере — когда несколько раз нажмешь на ссылку с одним якорем, потом ровно столько же раз нужно отмотать назад, при этом другие браузеры переходы по идентичным хэшам второй раз не фиксирут. Я пока этот ньюанс узнал, уйму времени потерял.
0
только вот если нажать на «Refresh» в броузере то откроется только картинка. Судя по всему без костылей пока не обойтись.
0
Это пример так сделан коряво. Нормально History API работает. Сам пробовал для нормальных браузеров его использовать, а для паранормальных по старинке с обновлением страницы. Ничего сложного в этом нет, не считая того факта, что Chrome посылает события об изменении урла при первом открытии страницы, что есть моветон (кстати в статье о подобных нюансах ни единого слова...).
0
«Опера» 11.50 под Мак, кнопки истории в примере остаются неактивными.
0
Было бы здорово, если бы можно было говорить счетчикам посещаемости, что сделан переход на следующую страницу или страницу назад, в общем чтобы считчики как обычно считали переходы по сайту, может их код тоже целиком перезагружать… но тогда нужно наверное очищать некоторые переменные и объекты, которые они создали… никто не сталкивался?
0
Кстати, Вконтакте использует это уже Х месяцев, благодаря этому флэш-плеер всегда на виду и играет даже при переходах на др. страницы, молодцы ребята.
Автор, спасибо за статью, давно ждал!
Автор, спасибо за статью, давно ждал!
0
Для jQuery, кстати, есть библиотеки для работы с историей, которые используют history API в новых браузерах и манипуляции с location.hash в старых. Я в одном проекте использовал jQuery BBQ.
+1
а вместо: if (history.state){
не должно быть if (e.state){
не должно быть if (e.state){
0
имеется в виду 25-ая строчка people.opera.com/miket/2011/6/app.js — потому что только с таким исправлением у меня работает обновление path, note из state-а.
0
Добавили бы в статью ссылку сюда habrahabr.ru/post/144071/ — polyfill для старых браузеров
0
Очень хорошо реализовано на shotme.ru
-3
Sign up to leave a comment.
Введение в HTML5 History API