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

3
我们的单页应用程序使用自定义路由器。我们使用 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");

但是上述代码会持续添加到浏览器的历史记录中。我错在哪了?

请查看此链接:https://dev59.com/XnVC5IYBdhLWcg3w9GE9 - Sergey Boiko
1个回答

1

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接