0

これが私のWebサイトでのイベントの流れです

  1. [http://example.com] にアクセスします。ブラウザのアドレスバーに http://example.com と表示されていても、Webページにはhttp://example.com/fooのコンテンツが表示されます

    Web ページ上のテキストは、ユーザーにチェックアウト バーを要求します。ユーザーがリンクをクリックすると、

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

    Web ページのテキストは、ユーザーに baz をチェックアウトするよう求めています。ユーザーがリンクをクリックすると、

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

    Web ページのテキストは、ユーザーに qux をチェックアウトするように求めています。ただし、ユーザーがブラウザの戻るボタンをクリックすると、

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

    Web ページのテキストは、ユーザーに baz をチェックアウトするよう求めています。しかし、ユーザーがブラウザの戻るボタンをクリックすると、... FAIL! に移動します。これは、ブラウザ バーが [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の履歴 - window.pushState が機能しないを参照してください。2つを分離すると、うまく機能しています。history.pushState()popstate

于 2013-07-31T20:35:00.740 に答える