JavaScript Ausführungszeit

Manchmal wird die JavaScript-Datei ausgeführt, bevor das DOM vollständig gerendert ist. Das dadurch verursachte Problem ist, dass beim Versuch, auf die DOM-Elemente zuzugreifen, ein Fehler ausgegeben wird, der besagt, dass das Element nicht existiert. Vorerst haben wir die setTimeOut-Methode verwendet, um die Ausführung um eine halbe Sekunde zu verzögern, was weder eine gute Lösung noch eine gute Praxis ist.
Die Frage ist also, wie die JavaScript-Datei so geändert werden kann, dass sie nur ausgeführt wird, wenn das DOM vollständig generiert ist?

Das ist zu erwarten, wenn Sie Ihre Erweiterungen mit unzureichenden Hooks erstellen, wie z. B. $( document ).ready oder ähnlichem.

Discourse ist eine EmberJS-App, daher sollten Erweiterungen dies berücksichtigen und sich in die vorhandenen Hooks der App einklinken. Darüber können Sie unter Developing Discourse Themes & Theme Components mehr erfahren.

4 „Gefällt mir“

@Falco Vielen Dank für Ihre Antwort. Ich werde es mir ansehen und Sie wissen lassen, ob es funktioniert hat.

2 „Gefällt mir“