How to automatically adjust iframe height for embedded wordpress posts

Ugh, ich habe es zum Laufen gebracht. Das Problem war, dass ich eine benutzerdefinierte Klasse für das iframe-Tag verwendet habe und Discourse alle diese Tags entfernt. Ich hätte aus meinen Fehlern der letzten Tage lernen sollen (Formatting posts to look more like Wordpress blog - #6 by jimkleiber). Ich habe gelesen, dass es Sicherheitsgründe dafür gibt, warum benutzerdefinierte HTML-Klassen hier nicht funktionieren, aber ich bin mir nicht sicher, warum :confused:

Hier ist jedoch der Code zum Anpassen der Höhe eines iframes mit dem Selektor .topic-body iframe (ich bin mir nicht sicher, ob dieser Code für andere funktioniert, er scheint für mich zu funktionieren):

<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); // Passen Sie die Verzögerung nach Bedarf an
      },
      { id: "component-id", onlyStream: true}
    );
</script>

EDIT: Eigentlich funktioniert es nicht. Ich habe height="4000px" im iframe-Tag hinzugefügt, und deshalb hat es meiner Meinung nach funktioniert.

1 „Gefällt mir“