pushstate的多个问题:历史,加载,调用函数

时间:2015-03-16 21:17:04

标签: jquery ajax wordpress pushstate history.js

我有一个目前通过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的页面上并单击一个链接转到其他,当页面加载其他时它会在浏览器上显示该页面的标题为Cain。好像失败了。这很奇怪。

  3. 我似乎无法找到一个调用函数ragecharts()的好方法;在这;我把它放在ajax加载后,我有nicescroll refiring以便工作,但这只会破坏代码。我也试过popstate函数,但这也行不通。我需要能够重新调用此函数,因为当数据加载到页面中并且正在使用该函数时,它不会正确显示数据。

  4. 加载功能;我很熟悉它,可以这么说,在将ajax作为叠加层拉出之前调用#page-load div并在之后设置延迟,但我真正想要的是覆盖层只有淡出一次ALL数据已加载到ajax调用中。在叠加层淡出时,仍然需要加载大量图像,我希望它在完全加载之前保持不变。

  5. 这就是它。

    我很难在可行的情况下拍摄这张照片,但是对于这些东西我只是一个新手,所以也许有些东西我没看错。

    如果你能够提供帮助,请提前致谢。

0 个答案:

没有答案