16.01.2012, 23:48
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
событие срабатывает если вы в браузере нажали кнопку назад или вперед.
<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>
|
|
16.01.2012, 23:53
|
Профессор
|
|
Регистрация: 14.09.2011
Сообщений: 523
|
|
Жаль. Значит всё-таки придётся следить за сменой урла. Спс за ответ
|
|
17.01.2012, 00:00
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от zebra
|
Жаль. Значит всё-таки придётся следить за сменой урла. Спс за ответ
|
что то не совсем вас понимаю, зачем следить? меняете url вы же зами скриптом, а значит знаете о том что его сменили. Вот если пользователь сменит ручками url, или нажмет назад, вперед то сработает событие.. Именно так и работают нативные функции history API тоесть от библиотеки это не зависит. Потому что она работает по тем же принципам что и нативные функции.
|
|
17.01.2012, 01:19
|
Профессор
|
|
Регистрация: 14.09.2011
Сообщений: 523
|
|
Посмотрел Ваши функции на сайте и разобрался
|
|
22.01.2012, 23:26
|
Профессор
|
|
Регистрация: 14.09.2011
Сообщений: 523
|
|
И снова я и снова ie Страничка посылает ajax запросы, и вот иногда когда приходят данные IE вызывает JSON.parse (не из моей функции, а походу где-то в либе) с значением null. Отключаю Ваш скрипт, сё нормально сразу. Баг не баг, я пробовал на ie8-9.
|
|
23.01.2012, 00:48
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от zebra
|
И снова я и снова ie Страничка посылает ajax запросы, и вот иногда когда приходят данные IE вызывает JSON.parse (не из моей функции, а походу где-то в либе) с значением null. Отключаю Ваш скрипт, сё нормально сразу. Баг не баг, я пробовал на ie8-9.
|
Не совсем понял, но если не сложно по подробнее... что конкретно происходит, какие ошибки возникают, что перестает работать, если есть возможность пришлите лог консоли.. СПС
|
|
23.01.2012, 03:19
|
Профессор
|
|
Регистрация: 14.09.2011
Сообщений: 523
|
|
Нашёл косяк. У меня 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 ))();
}
|
|
23.01.2012, 08:21
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от zebra
|
Нашёл косяк. У меня json либа была старая, и JSON.parse(null) вылетал в ие.
Вот тут data == null.
|
Да спасибо я исправил, можете скачать исправленную версию в первом топике.
|
|
01.02.2012, 00:56
|
Новичок на форуме
|
|
Регистрация: 30.01.2012
Сообщений: 1
|
|
и всё таки если обновить страницу то переходим на главную страницу, а URL не меняется, логичнее оставаться на этой же странице.
а сдругой стороны кажется это не возможно... к сожалению знания не такие глубокие , чтобы реализовать подобное
|
|
01.02.2012, 01:09
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от 64j
|
и всё таки если обновить страницу то переходим на главную страницу, а URL не меняется, логичнее оставаться на этой же странице.
а сдругой стороны кажется это не возможно... к сожалению знания не такие глубокие , чтобы реализовать подобное
|
хм... почему вы так решили? Вроде как я делал с учетом того что бы при обновлении страницы срабатывало событие popstate в случае если мы находимся не на главной. Вы можете посмотреть на сайт http://history.spb-piksel.ru/ по обновлять страницу, и увидите что страница все таже после обновления что и была до обновления.
|
|
|
|