我正在使用带有jQuery的History.js.
我的网页是搜索引擎。
表单是通过$ .ajax()提交的,结果是在div#results with pagination中加载的。 点击下一页的链接也由$ .ajax处理。
每个结果都是指向另一个页面的链接。
当我第一次加载表单时,我希望div#results为空。但是当我点击结果的链接然后点击后退按钮时,我希望div#results的结果相同。
$('.link_page').on('click', function(e){
e.preventDefault();
var page = $(this).data('page');
$.ajax({
url: '/search',
method: 'POST',
data: {
create_date : $('#create_date').val(),
page : page
}
}).done(function( html ) {
$( "#results" ).html( html );
History.pushState({results: html}, "Search", "/search");
});
});
History.Adapter.bind(window, 'statechange', function (evt) {
var state = History.getState();
$( "#results" ).html( state.data.results );
});
History.Adapter.onDomLoad(function(){
var state = History.getState();
History.replaceState({results: state.data.results}, "Search", "/search");
});
效果很好,但如果我提交表单,那么我会访问我网站的任何页面,最后我会返回到我的表单,div#results仍然填满了之前的搜索。