Hallo,
Bei einer aktuellen Discourse-Version (Ember 6.6.0) erhalte ich diesen Fehler in der Browserkonsole, allerdings nur, wenn mein benutzerdefiniertes Plugin aktiviert ist:
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)
...
Was ich bisher unternommen habe:
- Mit allen benutzerdefinierten Plugins deaktiviert → kein Fehler.
- Mit nur meinem aktivierten Plugin (im Standard-Theme) → Fehler tritt auf.
- Im Plugin nach d-header, site-header, glimmer-site-header, getBoundingClientRect gesucht:
- Das Plugin greift nie in den Header ein; es fügt Komponenten nur über Konnektoren hinzu:
- discovery-list-area/…
- below-site-header/…
- below-main-outlet/…
- Das Plugin greift nie in den Header ein; es fügt Komponenten nur über Konnektoren hinzu:
- Versucht, im Plugin-Initializer defensiv ein Stub-.d-header-Element zu erstellen, falls keines existiert, aber der Fehler tritt trotzdem auf.
- Auf Seiten, auf denen der Fehler ausgelöst wird, gibt
document.querySelector('.d-header')ein Element zurück.
Fragen:
- Unter welchen Bedingungen kann
glimmer-site-headerdazu führen, dasselement.getBoundingClientRect()fürnullaufgerufen wird? - Gibt es etwas Besonderes bei der Verwendung des
below-site-header-Konnektors oder beim Hinzufügen von Body-Klassen, das mit der neuen Header-Komponente interferieren könnte? - Gibt es eine empfohlene Methode, wie Plugins sicher mit
glimmer-site-headerkoexistieren können, damit dieser Null-Zugriff verhindert wird?
Jeder Hinweis oder bekannte Probleme in dieser Hinsicht wäre sehr hilfreich.