popstate继续使用最后状态

时间:2016-04-22 11:58:16

标签: browser-history html5-history popstate

当用户过滤品牌,类别等时,我得到了一个简单的代码。 一切都按预期工作。

但是当你想要回去两次时,第一个popstate会完美地返回最后一页。但是当你再次返回时,它仍会返回最后一页,因此它会再次加载它。而不是那之前的页面。

我的一段代码:

pushstate

var params = $('fme_layered_params').value.parseQuery();
// Object { cat="274",  dir="desc"}

if (!params['dir'])
{
    $('fme_layered_params').value += '&dir=' + 'desc';
}
if(window.location.href.indexOf('?') > -1){
    var u = window.location.href.split("?");
    var url = u[0]+"?"+$('fme_layered_params').value;
}else
    var url = window.location.href+"?"+$('fme_layered_params').value;

window.history.pushState($('fme_layered_params').value, 'link', url);

popstate

window.onpopstate = function(e) {

    if(e.state!==null){
        var state = e.state;
        state = state.split("&");
        // ["cat=272", "dir=desc"]

        jQuery.each(state, function(i,v){
            var info = v.split('=');
            fme_layered_add_params(info[0], info[1], 1);
        });
        fme_layered_make_request();
    }
};

我做错了什么?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我解决了这个问题 每次我回去它也推动当前页面。所以我回去了,同一页被推入历史,导致无限重新加载某个页面。

<强> TL; DR
检查,仔细检查,三重检查您的代码如何走路&#39;通过线路。