返回按钮历史记录未正常工作

就在过去两天,我遇到了以下问题:

  • 从“最新”页面进入某个主题
  • 阅读片刻后返回“最新”页面
  • 进入另一个主题
  • 点击返回按钮,却将我带到之前浏览的第一个主题,而不是“最新”页面

我在 Safari(iOS,实际上是 iPadOS 公开测试版 1)和 Mac 版 Firefox 上都遇到了这个问题。

我不确定这是否是两天前才出现的情况,但有可能我记错了。

1 个赞

我刚才试了一下,但对我来说似乎不起作用。对你来说,是每次都能 100% 成功,还是偶尔才行?

1 个赞

过去几天我也一直看到这个情况,但我还没能确定复现步骤——起初我还以为是自己看错了 :slight_smile:

1 个赞

我们的新历史记录 API 修复可能尚未考虑到某种链接。如果有人能帮助我们隔离它,我们将不胜感激!

3 个赞

这仅发生在测试版上吗?因为我们不支持测试版操作系统。

1 个赞

我在 macOS 10.14.5 和最新版的 Chrome 上遇到了这个问题。

3 个赞

我一直在这里玩了一会儿——我无法提供确切的步骤,但通过随机选择一个主题、打开它、滚动页面、点击返回,然后再选择另一个随机主题、打开它、滚动页面并再次点击返回,我大约每 5 次(或更多)就能触发一次这个问题。相当频繁地,它会返回到第一个主题,而不是主题列表。

这不算是一个很好的复现案例,但确实通过这种方式经常遇到。发生时控制台也没有任何错误。

编辑:当问题出现时,你可以观察点击返回时的 URL。它开始时是 meta.discourse.org/,但在列表几乎立即加载后,URL 会被重写为你刚才所在的帖子的 URL。

编辑 2:我实际上可以通过点击这个主题、向上滚动,然后立即点击返回(我的鼠标上设置了返回按钮——也许这就是我能轻松触发的原因)来几乎持续地触发它——这看起来确实是某个返回值的时间问题。

编辑 3:可以持续复现:点击任意主题,在它完全加载之前点击返回——在主题列表加载后,URL 会被重写为你刚刚离开的帖子的 URL。

3 个赞

啊,原来是加载速度的问题。谢谢,这很有帮助。

3 个赞

这应该可以解决问题:

我没想到这个问题与最近的 history 变更无关,实际上是由最近合并的 commit 中添加的新 willTransition 引起的。

我想我们应该始终记住在 willTransition 方法中 return true

10 个赞

本主题在 26 小时后自动关闭。不再允许新回复。