Popstate无法按预期工作(需要多次点击)

时间:2016-01-14 17:31:34

标签: javascript jquery ajax html5-history popstate

我正在尝试学习历史Web API,但在第一道障碍时已经遇到了问题。

我能够history.pushState正常工作,但popstate存在问题。在AJAX页面加载后第一次单击它时工作正常,但如果我再次加载同一页面,我需要单击两次后退按钮。如果我再次加载它,我需要单击三次,依此类推。

这是我的代码:

$(function(){
var $main = $('#main');


$(window).on('popstate', function () {
    loadPage(location.href); 
});

$(document).on('click', 'a', function(){
    var href = $(this).attr('href');
    history.pushState({}, '', href);
    loadPage(href);
    return false;
})

loadPage = function(href){
    $main.load(href);
}
})

1 个答案:

答案 0 :(得分:1)

您需要状态对象。在你的情况下,你使用一个空的对象将无法正常工作。只需测试一个像这样的对象:{“url”:yourUrlVar}

参考:History.pushState - MDN