Mon site web fournit le bouton du mode sombre, donc lorsque le bouton est cliqué, je dois changer le thème de couleur des intégrations Discourse pour qu’il corresponde à mon site web.
Mais lorsque j’essaie d’ajouter une classe au corps de l’iframe intégré, je constate que iframe.contentDocument est toujours nul, et si j’utilise document.getElementById(\"discourse-embed-frame\").contentWindow.document, l’erreur est la suivante :
Je pense qu’il devrait y avoir un moyen de configurer le cadre intégré pour autoriser les origines croisées, mais je n’ai toujours pas trouvé comment configurer après avoir essayé quelques configurations.
L’autre solution consiste peut-être à utiliser postMessage, comme document.getElementById(\"discourse-embed-frame\").contentWindow.postMessage(\"darkMode\"), mais il faut un gestionnaire pour traiter le message darkMode dans le script, je n’ai pas trouvé où l’ajouter.
J’ai un défi similaire. Avez-vous trouvé une solution de contournement ?
En raison du problème inter-origines, je ne peux ajouter aucun type de marqueur sur l’iframe que mon CSS intégré peut utiliser pour déterminer les couleurs à utiliser :