我正在尝试使网站完全支持 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();
}
但是,对于上述两个片段,我发现后退按钮不起作用,尤其是对于提交的表单。如果我添加以下代码,它只会为我提供没有任何提交信息的默认页面,就像我一开始从未提交过表单一样。
window.onhashchange = hash_process;
有没有办法可以检查是否调用了后退按钮?任何想法将不胜感激,谢谢!