HTML5 历史记录 - 返回按钮到上一个完整页面?

Ant*_* F. 3 html javascript html5-history

我使用 HTML5 历史 API 来修改 URL,因为选择了某些产品属性(例如绿色汽车、蓝色汽车)以允许深层链接共享。

但是,这不是单页应用程序,所以我不想劫持用户的后退按钮:如果他们按后退,我想让他们转到上一页,而不是以前的汽车颜色。

实现这一目标的最佳方法是什么?

历史示例:

/page1
/page2
/page2?color=green
/page2?color=red
/page2?color=blue
Run Code Online (Sandbox Code Playgroud)

然后按浏览器的后退按钮返回/page1

Ant*_* F. 5

看起来我应该一直使用

history.replaceState();
Run Code Online (Sandbox Code Playgroud)

代替history.pushState();。它替换了浏览器的 URL,但不会添加到历史记录对象中,因此后退按钮可以按照我想要的方式工作。

History.replaceState() 的操作与history.pushState() 完全相同,只是replaceState() 修改当前历史条目而不是创建新条目。

开发者.mozilla.org