1

我正在使用 django 建立一个网站。在我的显示页面上,我有一个项目列表(带有名称结果),并且我有过滤器过滤“结果”并使用 ajax 调用在显示页面上获得另一个“过滤”列表。

现在,当我转到其他页面,然后单击后退按钮时,我返回到选择了过滤器的页面,但结果没有被过滤(我想要“过滤器”列表而不是“结果”列表回去)。使用后退按钮后如何进入最近的状态?基本上,使用 javascript 完成的所有操作以及后续操作都会被刷新。

谁能帮我这个。谢谢。

4

1 回答 1

0

浏览器历史行为变得复杂,但我使用的一种技术是将状态嵌入哈希中。这将使浏览器将每个不同的哈希值视为历史中的不同页面,并且还允许您执行诸如为特定过滤器选择状态添加书签之类的操作。我使用jquery,沿着这些路线:

$(function() {
  if (window.location.hash) {
    // parse the hash and update your filter settings, then get the content and display it
  };

  function update_hash() {
    // calculate the hash based on your filter
    window.location.hash = new_hash;
  };

};

然后将 update_hash 绑定为更改的事件处理程序。

于 2013-05-30T20:47:31.760 回答