제 웹사이트에는 다크 모드 버튼이 제공되며, 이 버튼을 클릭할 때 제 웹사이트와 동일한 색상 테마를 유지하도록 Discourse 임베드의 색상 테마를 변경해야 합니다.
그러나 임베드된 iframe의 body에 클래스를 추가하려고 하면 iframe.contentDocument가 항상 null로 반환되며, document.getElementById("discourse-embed-frame").contentWindow.document를 사용하면 다음과 같은 오류가 발생합니다:
임베드된 프레임이 크로스 오리지널(cross-origin)을 허용하도록 설정하는 방법이 있을 것 같지만, 여러 설정을 시도해 보았음에도 아직 어떻게 설정해야 하는지 찾지 못했습니다.
다른 방법으로는 postMessage를 사용하는 것이 있을 수 있습니다. 예를 들어 document.getElementById("discourse-embed-frame").contentWindow.postMessage("darkMode")처럼 사용할 수 있지만, 이 경우 스크립트에서 darkMode 메시지를 처리하는 핸들러가 필요합니다. 이 핸들러를 어디에 추가해야 하는지 아직 찾지 못했습니다.