Ugh, ci sono riuscito. Il problema era che stavo usando una classe personalizzata sul tag iframe e Discourse rimuove tutti quei tag. Avrei dovuto imparare la lezione qualche giorno fa (Formatting posts to look more like Wordpress blog - #6 by jimkleiber). Ho letto che è per motivi di sicurezza il motivo per cui le classi HTML personalizzate non funzionano qui, ma non sono sicuro del perché ![]()
Tuttavia, ecco il codice per regolare l’altezza di un iframe con il selettore .topic-body iframe (non sono sicuro che questo codice funzioni per altri, sembra funzionare per me):
<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); // Regola il ritardo secondo necessità
},
{ id: "component-id", onlyStream: true}
);
</script>
EDIT: in realtà, non funziona. Ho aggiunto height="4000px" nel tag iframe ed è per questo che funzionava, credo.