Ugh, j’ai réussi. Le problème était que j’utilisais une classe personnalisée sur la balise iframe et Discourse supprime toutes ces balises. J’aurais dû tirer la leçon d’il y a quelques jours (Formatting posts to look more like Wordpress blog - #6 by jimkleiber). J’ai lu que c’était pour des raisons de sécurité que les classes HTML personnalisées ne fonctionnaient pas ici, mais je ne suis pas sûr pourquoi ![]()
Cependant, voici le code pour ajuster la hauteur d’un iframe avec le sélecteur .topic-body iframe (je ne suis pas sûr si ce code fonctionne pour les autres, il semble fonctionner pour moi) :
<script type="text/discourse-plugin" version="0.8.18">
api.decorateCookedElement(
element => {
setTimeout(function() {
let iframes = element.querySelectorAll('.topic-body iframe');
if (iframes) {
iframes.forEach(function(iframe) {
iframe.onload = function() {
let iframeDocument = this.contentDocument || this.contentWindow.document;
let contentHeight = Math.max(
iframeDocument.body.scrollHeight,
iframeDocument.documentElement.scrollHeight
) + 'px';
this.style.height = contentHeight;
};
});
}
}, 5000); // Ajustez le délai au besoin
},
{ id: "component-id", onlyStream: true}
);
</script>
EDIT : en fait, ça ne fonctionne pas. J’ai ajouté height="4000px" dans la balise iframe et c’est pourquoi cela fonctionnait, je pense.