DiscoTOC 问题:TypeError:_offsetCalculator.headerOffset 不是一个函数

尊敬的 Discourse 团队,尊敬的 @Johani

非常感谢您提供的出色的 Discourse 插件 https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143。

昨天,有用户报告称 TOC 导航在 community.hiveeyes.org 上停止工作,您可以在 [1] 找到一个示例。该实例运行的是 Discourse 2.8.0.beta10 和最新的 DiscoTOC,是从主题组件管理器升级的。

在另外两个 Discourse 实例上,一切似乎都正常:

  • 2.8.0.beta10(自托管),DiscoTOC 落后 17 个提交,在 5b051e18 [2]
  • 2.9.0.beta2(商业计划),DiscoTOC 落后 1 个提交,在 9933031 [3]

您认为这可能是由于我们在系统中安装的其他插件 [4] 造成的吗?到目前为止,我们从未遇到过与 DiscoTOC 类似的任何问题。

提前感谢您花时间调查此事。我们倾向于认为这是我们这边的一个小问题,因为我们还没有发现其他人的类似报告。从另一个角度来看,这里的结果也可能有助于其他人观察到类似的情况。

此致,
Andreas。


Firefox 浏览器控制台中的错误是 Uncaught TypeError: _offsetCalculator.headerOffset is not a function,发生在 updateTOCSidebar 函数中。



  1. Installation von Saraswati auf SBC-Systemen (Debian), mit Upload per rsync oder FTP - BOB-Anleitungen - Hiveeyes ↩︎

  2. Panodata Map Panel for Grafana - The workbench - Panodata Community ↩︎

  3. Interpolating missing time-series values - Tutorials - CrateDB Community ↩︎

  4. 安装的插件。

    ↩︎
1 个赞

插件 footnote 在移动设备上有点难读。我也会在这里列出一个列表,以便更清楚地显示。:+1: (目前没有明显冲突,但其他人可能会发现问题)

已安装插件:

1 个赞

你好,

在按照 updateTOCSidebar:210 的引用时,Firefox 显示了这段代码

210: var distance = Math.abs(_domUtils.default.offset(heading).top - (0, _offsetCalculator.headerOffset)() - window.scrollY);

并指示可能存在语法错误

image

而原始代码是

你认为这可能是 REFACTOR: General component overhaul by pmusaraj · Pull Request #19 · discourse/DiscoTOC · GitHub 的初期问题吗,@pmusaraj

可以在我们的公共 Discourse 实例上检查这一点,例如在页面 Installation von Saraswati auf SBC-Systemen (Debian), mit Upload per rsync oder FTP - BOB-Anleitungen - Hiveeyes 上。

此致,
Andreas。

/cc @eviltrout, @cvx, @j.jaffeux

1 个赞

我发现 DiscoTOC 自 1 月 18 日重构以来使用的 headerOffset 出现在 app/assets/javascripts/discourse/app/lib/offset-calculator.js在此提交 中,时间是 1 月 7 日,介于 2.8.0.beta10(12 月 21 日)和 2.8.0.beta11(1 月 13 日)之间。

2 个赞

那么我们应该升级 Discourse,或者将 DiscoTOC 降级到重构之前的版本,对吗?谢谢!

1 个赞

是的。

在报告 bug 之前,您应该始终做的一件事是尝试查看它是否仍然存在于最新的 {tests-passed|stable} 上。

5 个赞

没问题,非常感谢!

但是 我还有另一种关于报告的观点想在此分享:为搜索引擎提供信息,以便为遇到相同错误的其他用户提供如何处理和缓解该问题的指南。

例如:“嘿,这里发生了什么?浏览器控制台中出现“Uncaught TypeError”?我马上把它粘贴到搜索框里。啊,对了,找到了——我看到,只需升级 Discourse 或降级 DiscoTOC 即可。谢谢,再见。”


非常感谢 Richard 提供的快速支持!非常感激。

你好,

我们想汇报一下,在升级到 Discourse 2.9.0.beta2 后,一切又恢复正常了。

非常感谢,此致,
Andreas。

2 个赞