history.JS (最新) を Jquery (最新) と共に使用して、Web サイトの一部だけを読み込んで置き換えています。ハッシュ変更で。
すべてが機能しているように見えますが、ブラウザー (最新の FF と Chrome) の [戻る] ボタンをクリックしても、ページは変わりません (URL とタイトルは変わります)。グーグルでここを見てみましたが、何が起こっているのかわかりません。
スタック オーバーフローを見ると、次のページが見つかりました: History.js で戻るボタンをクリックするとコンテンツが復元され、同様の質問をしているようです。#left_col (置換される div) のロードされたコンテンツを状態データに追加しましたが、そこからどこに行くべきかよくわかりません。状態が変化したときにそのデータをリロードする必要があることはわかっています。しかし、方法がわかりません。
var History = window.History;
var origTitle = document.title;
if ( !History.enabled ) {
return false;
}
History.Adapter.bind(window,'statechange',function(){
var State = History.getState();
History.log(State.data, State.title, State.url);
});
$('.ajaxload').live("click", function() {
History.pushState({state:1,leftcol:$('#left_col').html()}, origTitle, $(this).attr("href"));
$('#left_col').load($(this).attr("rel"));
return false;
});
助けていただければ幸いです。
アップデート:
ユーザーがクリックして戻ったときにページを変更することができましたが、正しい状態をロードしません (1 つではなく 2 つの状態に戻るようです)。上記のコードに追加したコードは次のとおりです。
window.addEventListener('popstate', function(event) {
var State = History.getState();
$('#left_col').html(State.data.leftcol);
});