Многочисленные проблемы с pushstate: история, загрузка, вызов функций

У меня есть скрипт, который в настоящее время извлекает данные через ajax/pushstate; это работает относительно хорошо, но есть некоторые проблемы, с которыми я сталкиваюсь. Прежде всего, вот код, который я сейчас использую:

function goTo(href) {
    $.ajax({
        url: href,
        success: function(data) {
            $('#wrapper').fadeOut('fast', function(){

                $(this).html(data).fadeTo('fast', 1);

        $(".scroll").niceScroll({cursorcolor:"#f33d39", cursorwidth: "10px", cursorborder: "none", cursorborderradius: "0px", fixed: true});



            });
            // update the page title
            var title = $('#page-right').find('h1').text();
            $('head').find('title').text(title);
        }
    });
}

if (typeof history.pushState !== "undefined") {
    var historyCount = 0;

    $('a[href*="rage.rage-wrestling.com"]').live('click',function(){
        var href = $(this).attr('href');
    $('#page-load').fadeIn( 'slow' );
        goTo(href);     
    $('#page-load').delay(2000).fadeOut( 'slow' );
        history.pushState(null, null, href);
        return false;
    });

    window.onpopstate = function(){
        if(historyCount) {
            goTo(document.location);
        }
        historyCount = historyCount+1;
    };
}

Теперь код извлекает нужные мне данные и отображает их, но я сталкиваюсь с несколькими проблемами, которые пытался решить, но безрезультатно. Они заключаются в следующем:

  1. Кнопка назад не работает в браузере.

  2. Заголовок страниц всегда на одну страницу позади; то есть, если я нахожусь на странице с именем Cain и щелкаю ссылку, чтобы перейти к Other, когда страница загружается для Other, она отображает заголовок страницы в браузере как Cain. Кажется, истек. Это странно.

  3. Я не могу найти хороший способ вызвать функцию ragecharts(); в этом; Я поместил его после загрузки ajax, где у меня есть nicescroll refiring для работы, но это только нарушает код. Я пробовал в функции popstate, но это тоже не работает. Мне нужно иметь возможность повторно вызвать эту функцию, потому что, когда данные загружаются на страницу и эта функция используется, они не отображают данные правильно.

  4. Функция загрузки; Я, так сказать, подстроил его, вызывая div # page-load, вызываемый до того, как ajax извлекается как оверлей, и устанавливая задержку впоследствии, но я действительно хочу, чтобы оверлей исчез только после того, как ВСЕ OF DATA загружен внутри вызова ajax. К тому моменту, когда наложение исчезнет, ​​нужно загрузить множество изображений, и я хочу, чтобы они оставались до полной загрузки.

Вот и все.

Я с трудом справлялся с этим настолько, насколько это возможно, но я только новичок, когда дело доходит до этого материала, так что, возможно, есть что-то, что я не вижу правильно.

Спасибо заранее, если вы можете помочь.

0 ответов

Другие вопросы по тегам