| Dr2005alex |
|
|---|---|
|
Выставляю на обсуждение небольшую доработку ajaxHelper Так как ajaxHelper подставляет hash данные для ajax загрузки в адресную строку, он немного портит её вид. Она становится типа. http://ваш сайт/#get-light_page;blog/cotonti/; Все это ради сохранения истории браузера, НО.... ведь можно историю переписать так, как нам надо. В общем мое предложение: Что бы ссылки были того же вида каки без ajax. Тоесть не http://ваш сайт/#get-light_page;blog/cotonti/; а http://ваш сайт/blog/cotonti/ Пример данной реализации уже работает на сайте http://dev.ob4aga.ru/ Предложение добавить в base.js перезапись истории с передачей данных для ajax Изменим кусок кода из base.js
$('body').on('click', 'a.ajax', function() {
var make_hash = ajaxMakeHash($(this).attr('href').replace(/#.*$/, ''), $(this).attr('rel'));
$.historyLoad(make_hash);
//dr2005alex
history.replaceState ({rel:make_hash}, '', $(this).attr('href').replace(/#.*$/, ''));
/*------------------------*/
return ajaxError;
});
тут
history.replaceState ({rel:make_hash}, '', $(this).attr('href').replace(/#.*$/, ''))
Записывает данные для ajax в переменную rel и заменяет адресс на оригинальный. Далее нам надо отследить событие нажатие в браузере назад и вперед. Добавляем обработчик после данного кода.
window.addEventListener('popstate', function(e){
ajaxPageLoad(history.state.rel);
}, false);
Теперь при переходе назад/вперед вызывается функция ajaxPageLoad с сохраненными в истории данными для ajax загрузки страницы. Теперь мы имеем стандартые ссылки в адр. строке без хэша и работающий ajaxHelper как обычно. P/S Чем вам не Вконтакте? ))) Можно теперь и плеер слушать во время прогулок по сайту.... WebKaa.ru - Cotonti Relax
|