HTML5の機能についていくつか質問がありましたがpushState
、私が抱えている 2 つの問題については何も見つかりませんでした。私のpopstate
ハンドラーは次のように定義されています:
$(window).bind('popstate', function (e) {
if (!e.originalEvent.state)
return;
LoadContent({ url: e.originalEvent.state.path });
}
このLoadContent
呼び出しは、ajax を使用してコンテンツ ペインを埋めるだけです。
問題 1:page1
自分のサイトをブラウズすることから始めたとします。LoadContent
がないので呼び出されませんstate
。私の閲覧履歴が次のようになっているとします。
page1 -> (ajax)page2 -> (ajax)page3 -> (back pressed)page2 -> (back pressed)page1
ブラウザの戻るボタンを押して に移動するとpage2
、すべて問題ありません。ただし、もう一度押すと、のコンテンツをロードする必要page1
がありますe.originalEvent.state
がnullです。つまり、 LoadContent は呼び出されないため、コンテンツは on と同じままになりpage2
ます。page1
戻るときに のコンテンツをロードするにはどうすればよいですか?
問題 2:page3
からに戻ると想像してくださいpage2
。つまり、2 ページ目のコンテンツを ajax 経由でロードします。ここで、もう一度 を参照(つまり、手動で URL をブラウザのアドレス バーに入力) し、page3
もう一度[戻る] を押して に移動するとしますpage2
。2 ページ目を表示する代わりに、ブラウザーは以前に取得した のコンテンツのajax結果page2
のみを表示するため、ページの残りの部分は読み込まれません。これはどのように修正できますか?
助けてくれてありがとう!