때로는 DOM이 완전히 렌더링되기 전에 JavaScript 파일이 실행됩니다. 이로 인해 DOM 요소에 접근하려고 할 때 해당 요소가 존재하지 않는다는 오류가 발생합니다. 현재 우리는 setTimeOut 메서드를 사용하여 실행을 0.5초 지연시키고 있지만, 이는 좋은 해결책도 좋은 프랙티스도 아닙니다.
따라서 질문은 DOM이 완전히 생성된 경우에만 JavaScript 파일이 실행되도록 어떻게 변경할 것인가입니다.
부적절한 훅, 예를 들어 $( document ).ready 또는 이와 유사한 것을 사용하여 확장 기능을 만들 경우 이러한 현상은 예상됩니다.
Discourse는 EmberJS 앱이므로, 모든 확장 기능은 이를 고려하여 앱의 기존 훅에 연결해야 합니다. 관련 내용은 Developing Discourse Themes & Theme Components 에서 확인할 수 있습니다.
@Falco 답변해 주셔서 정말 감사합니다. 확인해 보고 결과가 어떻게 나왔는지 알려드리겠습니다.