Forums / National / Russian / Идеи / Доработка ajaxHelper

Dr2005alex
#38061 2013-09-29 21:20

Я предлагаю все сделать очень просто. Для тех кто пользуется старыми браузерами, эту фичу отключать и работать с  хэшем в адрессной строке. 

А для продвинутых и фишку рабочую. В конце концов браузеры идут вперед и всеравно все будут поддерживать.

Вобщем общий код получается такой 

Java
1
2
3
4
5
6
7
8
9
10
11
12
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( "popstate", function( e ){
          if(history.state !== null && supports_html5(history.state) ) {ajaxPageLoad(history.state.rel); }
        });

Я тут добавил функцию проверки. Поддерживает ли браузер данный оператор.

function supports_html5(e) {return !!e;}

Если поддерживает , то исполняем, ну а если не поддерживает, то смотрите на hash в адрессной строке.

Но ИМХО не правильно будет если усер скопирует адрессную строку с хэшем в ней и поделится с пользователем, в которой сама ссылка будет вести на страницу А а хэш на страницу Б.

Добавлено 9 минуты спустя:

обновил на сайте скрипт, можете тестить на разных браузерах.

WebKaa.ru - Cotonti Relax
This post was edited by Dr2005alex (2013-09-29 21:29, 11 years ago)