Il modifie l’iframe qui se trouve dans un DModal pour inclure le langage et le contenu du code. Cependant, il me dit que iFrame est null, donc il n’a pas pu ajouter addEventListener à celui-ci.
J’ai essayé ceci :
Il semble que vous travailliez en gjs, vous pouvez donc simplement utiliser les fonctions glimmer au lieu d’essayer de contourner le rendu DOM et les conditions de concurrence. Ajoutez le modificateur glimmer {{on}} avec l’élément iframe et faites en sorte que votre fonction on loaded se déclenche dessus.
Ah, j’ai fait une erreur dans mon exemple. Ça devrait être {{on \"load\" this.onIframeLoaded}}, sans parenthèses, car il doit s’agir d’une référence à une fonction.
Hmm… il est indiqué Error: 74:13 error 'on' is not defined dans ESLint. Et la documentation ne mentionne aucune importation car c’est un modificateur.
J’ai ajouté event comme paramètre à onIframeLoaded car la documentation le faisait.
Ajoutez import { on } from \"@ember/modifier\"; et cela devrait fonctionner.
C’est une bonne idée de regarder le code source de Discourse. C’est un bon endroit pour apprendre avec du code existant.