hans35: Anpassen der Höhe eines IFRAME

Hi,

ich möchte die Höhe eines IFRAME an den jeweils geladenen Inhalt anpassen, um Scrollbalken passender Länge zu erhalten. Die Methode der Wahl ist:

http://forum.de.selfhtml.org/archiv/2004/12/t96533/#m587347

Problem: Das IFRAME ist seinerseits ein Tabellenelement.
Gibt es einen JS-Befehl, um auch die Höhe des Tabellenelements mit anzupassen?

Gruß
Hans35

  1. Hi hans35,

    ich möchte die Höhe eines IFRAME an den jeweils geladenen Inhalt anpassen, um Scrollbalken passender Länge zu erhalten.

    Problem: Das IFRAME ist seinerseits ein Tabellenelement.
    Gibt es einen JS-Befehl, um auch die Höhe des Tabellenelements mit anzupassen?

    Meinst du etwas in dieser richtung?

    Grüße,
    Engin
     GYRO

    1. Hallo Engin,

      so ungefähr hab ich es ja gemacht: Das Tabellenelement wird als ein iframe mit Namen ausgebildet, und dessen Eigenschaft "height" wird nachträglich bei Bedarf (hier: "onload") geändert, je nach Größe des zu ladenden Inhalts. Die Länge der Navigationsleiste des anderen <td> zu diesem <tr> passt sich dann an und zeigt den Hintergrund.

      Wie das aussieht kannst Du dir auf meiner HP
          http://www.vonsanssouci.de
      anschauen: Der Browser*) füllt erst das falsch dimensionierte Tabellenelement aus und passt es erst später an, nämlich, wenn das iframe fertig ausgefüllt ist und daher bekannt ist, wie groß es ist. Insbesondere beim ersten Aufruf (ohne Cache) ist das nicht sehr schön. Bessere wäre evtl., nicht nur das iframe bei "onload" zu "resizen" (schreckliches Denglisch!), sondern auch das Tabellenelement selbst.
         <td ... height ="..."> <iframe ...> </iframe></td>

      Oder ist das sowieso der falsche Ansatz?

      Evtl. ist "onload" der falsche Zeitpunkt für das "Resize", d.h. dass das Laden des iframe erst für ein paar msec verhindert werden müsste, bis das Resize fertig ausgeführt ist?

      Mir geht also nicht um das fertige Bild, sondern um die Dynamik des Ladens.

      Gruß
      Hans35

      *) Für mein Publikum (Hundezüchter) genügt IE und Firefox.

      1. Hallo Hans35,

        Wie das aussieht kannst Du dir auf meiner HP
            http://www.vonsanssouci.de
        anschauen: Der Browser*) füllt erst das falsch dimensionierte Tabellenelement aus und passt es erst später an, nämlich, wenn das iframe fertig ausgefüllt ist und daher bekannt ist, wie groß es ist. Insbesondere beim ersten Aufruf (ohne Cache) ist das nicht sehr schön. Bessere wäre evtl., nicht nur das iframe bei "onload" zu "resizen" (schreckliches Denglisch!), sondern auch das Tabellenelement selbst.
           <td ... height ="..."> <iframe ...> </iframe></td>

        Nein, er passt das zunächst nicht unbedingt passende IFRAME-Element in der Höhe an, dass dann wiederum die umgebende Tabellnezelle im Mutterdokument wachsen oder schrumpfen lässt.

        Evtl. ist "onload" der falsche Zeitpunkt für das "Resize", d.h. dass das Laden des iframe erst für ein paar msec verhindert werden müsste, bis das Resize fertig ausgeführt ist?

        Da du ja, anders als auf meiner Testseite, die Engin verlinkt hatte, den Wert, wie weit sich das IFRAME-Element im Mutterdokument in der Höhe ausdehnen soll, immer von Hand in jedes eingebundene Dokument setzt, benötigst du hierfür kein OnLoad-Event. Du kannst doch den Aufruf der Resize-Funktion im Parent-Frame auch gleich ganz oben in einem Script-Block im HEAD des eingbunden Dokuments erfolgen lassen, noch bevor irgendetwas von dessen BODY geladen ist. Das Onload-Event benötigst du nur, wenn du die Höhe der Seite dynamisch ausliest.

        Toll ist diese IFRAME-Krücke aber sowieso nicht; besser solltest du serverseitig entsprechende Includes direkt in dein Mutterdokument schreiben.

        Gruß Gernot