2013-01-21 31 views
1

我正在一个显示交易记录列表的网站上工作(每页10条记录)。如何在使用ajax调用时实现next/back函数?

的页内寻呼搜索功能,其允许用户查看特定事务记录。(如日期范围,类型....超过10个参数至多)

当用户点击任何(更改页面/搜索条件),ajax调用用于在不重新加载的情况下获取并显示事务。

不过,说,用户点击下一页(AJAX调用),查看第二页,并试图点击浏览器的后退按钮。该网站将他重定向到另一个网页,而不是返回page1。

我知道有一个window.history.pushState更改URL,而不在镀铬/火狐HTML5重装。但我有支持旧的浏览器像IE7 +/FF/Chrome浏览器/ Safari浏览器。

是否有任何现有的解决方案来解决这个问题?谢谢。


编辑: 我曾尝试history.js今天中午。

// NEWURL:“PARA1 =值& PARA2 =数值& ....

history.pushState({data:"searchTransaction"}, document.title, newUrl); 

而Ajax请求后的网址已经改变了,我有一个问题是如何处理的变化?我想绑定back/next(用户单击)事件并获取“newUrl”,然后解析回参数映射并再次执行ajax请求 我想在整个参数数组中存储整个参数数组if可能的。

+4

尝试'的https:// github.com/balupton/History.js /'? – kayen

+0

@kayen - 打我吧:)我已经在许多项目中使用这个成功。 –

回答

1

可惜的是你不能因为不存在,它赶上了“BACK/NEXT”事件,但你可以在c ATCH的statechange

// Bind to StateChange Event 
History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate 
    var State = History.getState(); // Note: We are using History.getState() instead of event.state 
    History.log(State.data, State.title, State.url); 
}); 

我最常做的是捕捉用户的点击,如果为stateChange是没有点击trggered我supose用户做下一个或背部。

+0

这是我要找的,谢谢! – Drogba