我似乎无法弄清楚如何操纵浏览器历史记录

时间:2016-09-12 23:07:36

标签: javascript browser-history

所以我要做的是根据用户的导航更改数据。我有6个主要类别页面。从这6个主要类别页面中,我有12个子类别供用户选择。

我想要实现的目标:

假设用户选择了第一类。

  • 用户从类别1中选择子类别1。
  • 显示子类别页面,并删除与类别1无关的数据。
  • 用户从子类别1中选择子类别2,并删除与类别1无关的数据。
  • 用户从子类别2中选择子类别3,并删除与类别1无关的数据。

所以我可以将类别1做到子类别1但是我怎么做才能让我们说子类别1到2以及2到3 ...... n次......?每个子类别必须知道上次选择了哪个主要类别。

我看过但似乎无法找到解决方案。

window.location.hash
history.pushState("","","");
document.referrer

通常这是一个糟糕的设计,我理解但我只能在服务器端做些什么。所以试图开发一个工作......

1 个答案:

答案 0 :(得分:0)

在尝试使用这些并且没有达到预期的行为后,我通过几个小时的研究找到了最佳解决方案。我可以找到唯一的替代方法,用于在页面之间传递客户端数据。

window.location.hash
history.pushState("","","");
document.referrer

因此,假设用户导航到category1

您将设置会话存储对象

sessionStorage.setItem('last-category', "category1");

用户导航子类别1.您可以使用它来获取对象的会话存储,并显示该对象的最后一次设置操作。

sessionStorage.getItem("last-category"); -> output category1

用户导航子类别2

sessionStorage.getItem("last-category"); -> output category1

用户导航到类别2 您将再次设置会话存储对象以显示category2

sessionStorage.setItem('last-category', "category2");

用户导航到子类别1

sessionStorage.getItem("last-category"); -> output category2