0

这是我网站上的事件流程

  1. 转到 [http://example.com]。网页显示来自http://example.com/foo的内容,即使浏览器地址栏显示http://example.com

    网页上的文本要求用户签出栏。用户点击链接并被带到

  2. [http://example.com/bar]

    网页上的文本要求用户签出 baz。用户点击链接并被带到

  3. [http://example.com/baz]

    网页上的文字要求用户签出 qux。但是,用户单击浏览器后退按钮并被带到

  4. [http://example.com/bar]

    网页上的文本要求用户签出 baz。然而,用户点击浏览器后退按钮并被带到......失败!这是浏览器栏应该变成 [http://example.com] 的地方,但它根本没有改变。

实现这一切的代码相当简单

var goTo: function(uri) {
    get uri via XMLHttpRequest
    swap content
    history.pushState(null, null, uri);
}

window.addEventListener("popstate", function(event) {
    var uri = location.pathname.replace("\/", "");
    goTo(uri);
}, false);
4

1 回答 1

0

问题解决了。有关详细信息,请参阅HTML 5 History - window.pushState not working,但简短的是我不能history.pushState()popstate事件中拥有。一旦我将两者隔离开来,它就工作得很好。

于 2013-07-31T20:35:00.740 回答