AJAX(jQuery load
メソッド)を介してページをロードし、history.pushState
メソッドを介してURLをブラウザーバーにプッシュするときに、戻るボタンの機能を保持したい。この問題は、ブラウザの[戻る]ボタンを1回クリックし、最初のクリックで前のURLのみが復元され、前のページが読み込まれない場合に発生します。
これまでの私のコードは次のとおりです。
$(function(){
var profile_url= "/profile";
$('#click_button').click(function(){
$('#main_content').load(profile_url);
history.pushState({profile:profile_info}, "profile", profile_url);
});
});
私の質問は、戻るボタンを最初にクリックしたときに、前のページを#main_content
divにAJAXロードする方法はありますか?
どんな助け/アドバイスも大歓迎です。
このためには、「popstate」イベントをサブスクライブする必要があります。
Popstateイベントは、セッション履歴エントリに移動するときに発生する場合があります。 HTML5仕様
あなたはこのようにこれを行うことができます:
window.onpopstate = function() {
$('#main_content').load(location.href)
};
この目的でpopstate
イベントを使用できます。詳細については、 https://developer.mozilla.org/en/DOM/window.onpopstate を参照してください。
History.js もご覧ください。これはラッパーを提供し、ブラウザーが履歴APIをサポートしていない場合にURLハッシュタグにフォールバックできます。