How to automatically adjust iframe height for embedded wordpress posts

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é :confused:

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.

1 Mi Piace