【问题标题】:javascript pushState / onpopstate won`t work in combination with normal links on pagejavascript pushState / onpopstate 不能与页面上的正常链接结合使用
【发布时间】:2015-01-12 23:32:14
【问题描述】:

我在这里与 pushState 和 onpopstate 事件作斗争。在我通过 AJAX (a#itemPages) 链接浏览时,浏览器中的后退按钮按预期工作。但是,如果我之后单击普通链接并按浏览器中的后退按钮返回,我将无法前进到应该在更糟糕的历史记录中的普通链接。我仍然能够在“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);
        });
    }
};

【问题讨论】:

  • 需要更多 event.preventDefault()
  • 不幸的是,这没有帮助。我给了它一个机会……
  • 对不起,伙计们。索引页面上还有另一段 JS 也操纵了历史。这带来了问题。关闭这个问题。

标签: javascript pushstate


【解决方案1】:

对不起,伙计们。索引页面上还有另一段 JS 也操纵了历史。这带来了问题。关闭此问题。

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2012-07-24
    • 2019-04-20
    • 1970-01-01
    相关资源
    最近更新 更多