History.replaceState() 不适用于 Chrome(移动浏览器)

时间:2021-01-25 15:21:21

标签: javascript google-chrome mobile-chrome

情况

用户在我们的网站上注册后,他们会收到一封电子邮件,其中包含指向我们主页的链接以及验证令牌。一旦用户点击链接,进入页面并看到欢迎模式。令牌会从 url 和历史记录中以静默方式删除,而不会刷新页面。这可以避免用户在按下后退按钮或刷新页面时触发“令牌已验证”消息。当用户关闭欢迎模式时,页面也会刷新以登录。

我们使用 history.replaceState({}, pageTitle, '/') 执行此操作,根据 Mozilla's documentation,所有浏览器都应支持此功能。

问题

移动和桌面上的所有浏览器都遵循此行为,但移动上的 Chrome 除外,它完全忽略该功能并将令牌留在 url 中。这意味着当用户关闭欢迎模式并刷新页面以登录时,他们会看到“令牌已验证”消息。

我通过在关闭欢迎模式后将用户“重定向”到没有令牌的相同网址而不是重新加载页面来逃避这一点。

问题

移动设备上的 Chrome 浏览器是否支持 history.replaceState() 并且我在代码中做错了什么,还是 Chrome 不支持移动设备上的此 API?

0 个答案:

没有答案