Ajax を完全にサポートするサイトを作成しようとしていますが、履歴をサポートする方法を理解するのに苦労しています。私はhttp://balupton.github.com/jquery-history/demo/をjqueryを使用したハッシュ変更ライブラリとして使用しています:
$(document).on('click','a',function(){
var url = $(this).attr('href');
$.ajax({
// AJAX Call and populate
});
$.History.go(url);
return false;
});
$('input[type="submit"]').livequery('click',function(event){
$(this).closest("form").ajaxForm(get_pages_load_options);
var url = $(this).closest("form").attr('action');
$.History.go(url);
});
$('.get_pages').livequery('change',function(){
$(this).closest("form").ajaxForm(get_pages_load_options);
var url = $(this).closest("form").attr('action');
$.History.go(url);
});
また、ブックマークに次の JavaScript を使用しています。
function hash_process() {
url = window.location.hash.replace('#', '');
$.ajax({
//AJAX Call and Populate
});
}
if (window.location.hash) {
hash_process();
}
ただし、上記の 2 つのスニペットでは、特に送信されたフォームでは、戻るボタンが機能しないことがわかりました。次のコードを追加すると、最初にフォームを送信したことがないように、送信された情報がないデフォルトのページが表示されます。
window.onhashchange = hash_process;
戻るボタンが呼び出されたかどうかを確認する方法はありますか? どんなアイデアでも大歓迎です、ありがとう!