Исправил одну не приятную ошибку, читаем первый пост
|
Обновил версию, исправил работу с относительными ссылками, и добавил дополнительный параметр по просьбе трудящихся =)
|
Странное поведение в IE 9. Урл такого вида http://12.345.678.999:20000/home.htm превращает в такой http://12.345.678.999:20000/#home.htm. И невозможно загрузить страницу
|
Цитата:
Естественно работа с этой библиотекой подразумевает работу с якорем. если не хотите что бы она меняла юрл, запретите ей, указав параметр redirect=false <script type="text/javascript" src="history-1.2.3.js?redirect=false"></script> |
Вы бы хоть написали, что в ие не будет работать.
|
Цитата:
Если вы не понимаете принцип работы history API нативной версии, то для вас конечно же будет казаться что библа не работает. Советую для начала почитать о том что такое history API в браузерах которые их поддерживают, и тогда сразу туча вопросов и недопониманий выскочит из головы. |
Та вот тетсил в фф/хром/ие9 простой пример
window.history.pushState({'note': 123 }, '', '?test=123'); alert(window.history.state); Выводит объект только в фф. Я что-то делаю не так? |
Цитата:
А вообще вы правы, по идее его можно получить и без события. В библиотеке я это поправлю, но вот на Хром мои изменения не повлияют. |
Обновил версию в первом топике. zebra, спасибо за указание на ошибку.
|
Всё никак не могу понять как history работает. Вроде всё просто, но событие не popstate не срабатывает. Или всё-таки popstate не ловит вызов pushState, и надо всё время следить за изменением урла?
window.onpopstate = function(event) { alert(11111); }; setTimeout(function() { history.pushState({page: 1}, "title 1", "?page=1"); }, 2000); |
событие срабатывает если вы в браузере нажали кнопку назад или вперед.
<script type="text/javascript" src="http://code.spb-piksel.ru/history-1.2.4.min.js"></script> <script type="text/javascript"> var method = window.addEventListener ? ['addEventListener', ''] : ['attachEvent', 'on']; window[ method[ 0 ] ]( method[ 1 ] + 'popstate', function( e ) { var loc = e.location || document.location; alert( "return to: " + loc ); }, false); setTimeout(function() { history.pushState({page: 1}, "title 1", "?page=1"); }, 2000); </script> |
Жаль. Значит всё-таки придётся следить за сменой урла. Спс за ответ
|
Цитата:
|
Посмотрел Ваши функции на сайте и разобрался :)
|
И снова я и снова ie :-? Страничка посылает ajax запросы, и вот иногда когда приходят данные IE вызывает JSON.parse (не из моей функции, а походу где-то в либе) с значением null. Отключаю Ваш скрипт, сё нормально сразу. Баг не баг, я пробовал на ie8-9.
|
Цитата:
|
Нашёл косяк. У меня json либа была старая, и JSON.parse(null) вылетал в ие.
Вот тут data == null. // dispatch "popstate" event if location changed firePopState = function( location ) { his.state = null; if ( window.sessionStorage ) { var data = sessionStorage.getItem( lastHash ); if ( window.JSON && JSON.parse ) { his.state = JSON.parse( data ); } else { his.state = (new Function( "return " + data ))(); } |
Цитата:
|
и всё таки если обновить страницу то переходим на главную страницу, а URL не меняется, логичнее оставаться на этой же странице.
а сдругой стороны кажется это не возможно... к сожалению знания не такие глубокие , чтобы реализовать подобное |
Цитата:
|
Как всегда обновил версию... Исправлена очередная ошибка.
|
Вроде как архив битый...
|
Залей на GitHub или Google Code. Неудобно же помнить ссылку и качать архив после каждого изменения…
|
Подключил, заработало отлично, правда подключил стандартный что в примере, на сайте есть библиотеки для Jquery и т.п. и не очень понятно что подключать что нет... и зачем..
|
Добавил дополнительную ссылку для скачивания в первом топике.
Цитата:
|
он тогда не качался так что взял с примера, я про это:
https://github.com/balupton/history....s/uncompressed что это все и что с ним делать? |
Цитата:
|
А то я думаю что у меня не сходится то нихрена вместе =)
p.s. А за библиотеку спасибо избавили от кучи проблем и время сэкономили много! |
Цитата:
|
А не мог бы дописать пару строчек, чтобы в ie6 тоже работало?
|
one_hp,
не, лучше вы допишете пару строчек, чтоб на ваш сайт в ие6 не пускало. |
С удовольствием бы сделал подобную ( http://habrahabr.ru/blogs/noie/80319/ ) заглушку для ie6, но к сожалению требования к сайту включают в себя совместимость со старыми браузерами :(
|
Цитата:
|
Добавил поддержку ИЕ6 в архиве два типа библиотеки, та что не подерживает ИЕ6 и та куда я добавил пару строк кода для поддержки ИЕ6
|
Спасибо большое :)
|
Обновил версию
|
Выпустил новую версию библиотеки, долгожданную вторую версию. Полностью переписанную. Читаем первый топик.
|
devote, чего на гитхаб не запилишь?
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 19:43. |