Dr2005alex |
|
---|---|
#38063 Dayver: Упс, точно. Посмотрюс... Добавлено 2 дня спустя: Потестил в свободное время, оказалось... что данный глук есть изначально в AjaxHelper. При возврате на страницу без хэша ничего не происходит. Теперь у нас есть красивый вариант ajaxHelper. Тестируем на http://dev.ob4aga.ru/ Теперь страница обновляется и при возврате назад и вперед, даже если нету хэша. Рабочий на данный момент код function supports_html5(e) {return !!e;} $('body').on('click', 'a.ajax', function() { var make_hash = ajaxMakeHash($(this).attr('href').replace(/#.*$/, ''), $(this).attr('rel')); $.historyLoad(make_hash); if(supports_html5(history.replaceState)) history.replaceState ({rel:make_hash}, '', $(this).attr('href').replace(/#.*$/, '')); return ajaxError; }); $( window ).bind( 'load', function( event ) { if(supports_html5(history.replaceState))history.replaceState ({main:true}, '', location.href); setTimeout( function(){ $( window ).bind( 'popstate', function( event ) { if(supports_html5(history.state) && supports_html5(history.replaceState)) { if(history.state !== null && history.state.main)window.location = location; if(history.state !== null && history.state.rel)ajaxPageLoad(history.state.rel); if(history.state === null )history.replaceState ({main:true}, '', location.href); } }); },0); });
Данный вариант никак не изменяет работу ajaxHelper , а только маскирует его. Это означает что он работает в старом формате. Скрипт просто изменяет адресс в адрессной строке на более логичный а хэш сохраняет в истории браузера. При кликанье вперед/ назад - скрипт берет данные хэша из истории браузера. Тем самым поддерживает работу ajaxHelper. Единственное что я не тестировал, это работу с формами, т.к. нет никакого действующего примера использования ajaxHelper в данной ситуации. WebKaa.ru - Cotonti Relax
|
|
Dieser Beitrag wurde von Dr2005alex (am 2. Oktober 2013, 19:29, vor 10 Jahre) bearbeitet |