Javascript replaceState(…)在历史记录中添加一个新条目

Javascript replaceState(…)在历史记录中添加一个新条目,javascript,Javascript,我们的单页应用程序使用自定义路由器。我们使用history.replaceState(…)将无效URL替换为有效URL URL看起来像 http://domain.com/#view=employee/details&param1=1&param2=2 当需要替换无效的url时,我们调用 history.replaceState(null, null, "#view=employee/details&param1=11&param2=22"); 但是上面的代码

我们的单页应用程序使用自定义路由器。我们使用history.replaceState(…)将无效URL替换为有效URL

URL看起来像

http://domain.com/#view=employee/details&param1=1&param2=2
当需要替换无效的url时,我们调用

history.replaceState(null, null, "#view=employee/details&param1=11&param2=22");

但是上面的代码不断添加到浏览器历史记录中。我做错了什么?

replaceState将该条目添加到浏览器历史记录中(如果该条目不存在)。如果它已经存在,它将“替换”它,基本上它将使用旧条目,并使用当前时间戳替换它

如果您的目标是不向浏览器历史记录添加任何条目,那么使用JavaScript是不可能的

如果您的问题是浏览器历史记录中的条目加载了生成404错误的页面,则必须监视popState并显示相应的页面,否则您将创建虚假URL。

请查看