【发布时间】:2013-01-04 05:34:00
【问题描述】:
我正在开发一个显示交易记录列表(每页 10 条记录)的网站。
页面具有分页和搜索功能,可以让用户查看具体的交易记录。(如日期范围、类型....最多10多个参数)
当用户单击任何内容(更改页面/搜索条件)时,将使用 ajax 调用来获取和显示事务而无需重新加载。
但是,假设用户单击下一页(ajax 调用)以查看 page2 并尝试单击浏览器后退按钮。该网站会将他重定向到另一个网页,而不是返回到 page1。
我知道有一个 window.history.pushState 可以更改 url 而无需在 chrome/Firefox 的 html5 中重新加载。但我要支持旧版浏览器,例如 IE7+/FF/Chrome/Safari。
是否有任何现有的解决方案来解决这个问题?谢谢。
编辑: 今天中午我试过history.js。
// newUrl: "?para1=value1¶2=value2&....
history.pushState({data:"searchTransaction"}, document.title, newUrl);
并且在 ajax 请求之后 url 发生了变化。我有一个问题是如何处理更改事件。我想绑定 back/next(user click) 事件并获取“newUrl”,然后将其解析回参数映射并再次执行 ajax 请求。 如果可能的话,我想在 pushState 时存储整个参数数组。
【问题讨论】:
-
试试
https://github.com/balupton/History.js/? -
@kayen - 打败我吧 :) 我在很多项目中都成功地使用了它。
标签: javascript jquery html