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

I can't seem to figure out how to manipulate the browser history

所以我想做的是根据用户的导航更改数据。我有 6 个主要类别页面。在这 6 个主要类别页面中,我有 12 个子类别可供用户 select 使用。

我想要达到的目标:

假设用户 select 属于第一类。

所以我可以将类别 1 转换为子类别 1,但是对于让我们说子类别 1 到 2 以及从 2 到 3 ......n 次......我将如何做?每个子类别都必须知道哪个 main 类别是最后 selected.

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

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 您将再次设置会话存储对象以显示类别 2

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

用户导航到子类别 1

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