javascript pushState / onpopstate不会与页面上的普通链接结合使用

时间:2015-01-12 23:32:15

标签: javascript pushstate

我在这里与pushState和onpopstate事件作斗争。浏览器中的后退按钮按预期工作,我通过AJAX(#itemPages)链接浏览。但是,如果我之后点击普通链接,然后我在浏览器中返回按钮,我就无法前进到应该在bworser历史记录中的正常链接。我仍然可以在" ajaxified"之间前后移动。链接,但以后在浏览器历史记录中应该存在的普通链接就会消失(FF中的前进按钮会滑出,就像实际项目后的历史记录中没有其他项目一样)。此外,最后点击" ajaxified"链接出现在历史中两次。

$('body').on('click', 'a#itemPages', function(event){
    $(#plc).hide().fadeIn('slow');
    $.get($(this).attr('rel'), function(data) {
        $(#plc).html(data);
    });
    var stateObj = { URL: $(this).attr('rel') };
    history.pushState(stateObj, null, $(this)[0].href);
    return false;
});

window.onpopstate = function(e) {
    if (e.state !== null) {
        var prevstate = e.state.URL;
        $('#plc').hide().fadeIn('slow');
        $.get(prevstate, function(data) {
            $('#plc').html(data);
        });
    }
};

1 个答案:

答案 0 :(得分:0)

抱歉,伙计们。索引页面上还有另一段JS操纵历史。这带来了问题。关闭这个问题。