Javascript 我似乎不知道如何操纵浏览器历史记录

Javascript 我似乎不知道如何操纵浏览器历史记录,javascript,browser-history,Javascript,Browser History,所以我想做的是根据用户的导航来更改数据。我有6个主要类别的网页。从这6个主要类别页面中,我有12个子类别供用户选择 我正在努力实现的目标: 假设用户选择类别1 用户从类别1中选择子类别1。 此时将显示子类别页面,并删除与类别1无关的数据。 用户从子类别1中选择子类别2,并删除与类别1无关的数据。 用户从子类别2中选择子类别3并删除与类别1无关的数据。 所以我可以做第一类到第1类,但是如何做第1类到第2类,以及第2到第3类…n次。。。。?每个子类别都必须知道上次选择的主要类别 我已经看过了,但似乎

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

我正在努力实现的目标: 假设用户选择类别1

用户从类别1中选择子类别1。 此时将显示子类别页面,并删除与类别1无关的数据。 用户从子类别1中选择子类别2,并删除与类别1无关的数据。 用户从子类别2中选择子类别3并删除与类别1无关的数据。 所以我可以做第一类到第1类,但是如何做第1类到第2类,以及第2到第3类…n次。。。。?每个子类别都必须知道上次选择的主要类别

我已经看过了,但似乎找不到解决办法

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

通常这是一个糟糕的设计,我理解这一点,但我只能在服务器端做些什么。因此,我试图找到一个解决办法……

在尝试解决这些问题但没有达到预期效果后,我通过几个小时的研究找到了最佳解决方案。我能找到的唯一替代方法是在客户端页面之间传递数据

window.location.hash
history.pushState("","","");
document.referrer
假设用户导航到类别1

您可以设置一个会话存储对象

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

为什么这一点被否决了三次?有人知道sessionStorage在主要浏览器上的兼容性吗?