Glimmer-site-header.gjs:144 仅在启用自定义插件时出现 getBoundingClientRect 错误

您好,

在最近的 Discourse (Ember 6.6.0) 上,我仅在启用我的自定义插件时,在浏览器控制台中遇到此错误:

glimmer-site-header.gjs:144 Uncaught TypeError: Cannot read properties of null (reading 'getBoundingClientRect')
    at recalculateHeaderOffset (glimmer-site-header.gjs:144)
    at setupHeader (glimmer-site-header.gjs:212)
    ...

我目前已采取的措施:

  • 禁用所有自定义插件 → 没有错误。
  • 仅启用我的插件(在默认主题上)→ 出现错误。
  • 在插件中搜索 d-header、site-header、glimmer-site-header、getBoundingClientRect:
    • 插件从不接触页眉;它仅通过连接器添加组件:
      • discovery-list-area/…
      • below-site-header/…
      • below-main-outlet/…
  • 尝试在插件初始化程序中防御性地创建一个存根(stub).d-header 元素(如果不存在),但错误仍然发生。
  • 在触发错误的页面上,document.querySelector('.d-header') 返回一个元素。

问题:

  1. 在什么情况下 glimmer-site-header 会调用 element.getBoundingClientRect()element 为 null?
  2. 使用 below-site-header 连接器或添加 body 类是否有任何特殊之处可能干扰新的页眉组件?
  3. 是否有推荐的方法让插件与 glimmer-site-header 安全共存,以防止发生此 null 访问?

任何提示或关于此问题的已知问题都将非常有帮助。