0

これが私のコードです:

function pushState() {

    ...snip... (SelectedMenuID has a value of 8)

    var stateObj = { selectedMenu: SelectedMenuID };
    history.pushState(stateObj, "The title to use", path);
}

window.onpopstate = function(event) {
    if (event.state != null) {
        alert(event.state.selectedMenu);
    }
};

いくつかの問題:

  • the title to use各ページをクリックすると、ナビゲーション バーの URL は正常に更新されますが、期待どおりにタイトルが更新されません。
  • 押し戻すとアラートが作成されますが、値は期待どおりではundefinedありません8
4

1 に答える 1

3
  1. https://github.com/browserstate/history.js/wiki/The-State-of-the-HTML5-History-APIによると、現在、 の値に基づいてページ タイトルを更新するブラウザはありませんpushState()。個人的には、これは正しい動作だと思います。ページ タイトルは<title>、ページ ヘッドの要素を反映する必要があります。

  2. 呼び出しpushState()てから戻るボタンを使用すると、最後の pushState (実際には現在の状態) に戻るのではなく、その前の状態に戻ります。あなたの場合、ページの読み込み時に状態が表示されているように聞こえるため、selectedMenu は定義されていません。ちなみに、最初のページ読み込みに合わせて onpopstate を起動するのは Chrome だけなので、他のブラウザーではアラートが表示されるとは思いません。

于 2012-04-04T03:44:04.587 に答える