history.replaceState(...)在历史记录中添加新条目

时间:2014-07-28 19:02:28

标签: javascript

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

网址看起来像......

http://domain.com/#view=employee/details&param1=1&param2=2

当需要更换无效网址时,我们致电

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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