Patrick: Frames...

Hallo,

Mein Problem:

Ich würde gern eine hmtl-datei in einem iFrame so darstellen, dass dieser sich der Datei anpasst, ich jedoch im Frame selber nicht scrollen brauch.
Als Lösung hatte ich mir überlegt, eventuell irgendwie die Höhe und Breite der html-datei herauszubekommen und den iFrame dadurch anzupassen. Jedoch fehlen mir dummerweise jegliche Programmiertechnischen Befehle bzw Kenntnisse dazu, so dass ich leider aufgeben musste.

Ich hoffe, ihr könnt mir vielleicht weiterhelfen (am Besten mit einem Beispiel).

Vielen Dank schonmal im Vorraus für eure Mühe!

MfG Patrick

  1. Hallo Patrick,

    Ich würde gern eine hmtl-datei in einem iFrame so darstellen, dass dieser
    sich der Datei anpasst, ich jedoch im Frame selber nicht scrollen brauch.

    Verständlich. Ich an Deiner Stelle würde jedoch den Quelltext der Datei
    im iFrame bereits im Editor oder auf dem Server in den Quelltext der
    Datei mit dem iFrame einsetzen (natürlich ohne head und body), damit
    ich mich nicht mit dem iFrame rumärgern muß und nur ein HTML-Dokument
    ausgeliefert werden muß. Gute Editoren habe dafür eine Include-Technik;
    auf dem Server geht das mittels SSI, PHP oder Perl bzw. sonstiger
    Programmiersprachen.

    Als Lösung hatte ich mir überlegt, eventuell irgendwie die Höhe und Breite
    der html-datei herauszubekommen und den iFrame dadurch anzupassen.

    Die Höhe und die Breite der grafischen Anzeige eines HTML-Dokumentes
    richten sich nach der Höhe und Breite des vom Anzeigefenster zu Verfügung
    gestellten Platzes. Normalerweise ist das ein Browser, in Deinem Fall
    sind es die vordefinierten Höhen und Breiten des iFrames.

    Du willst also die Höhe und Breite der im iFrame dargestellten Seite
    auslesen, damit Du die Höhe und die Breite des iFrames anpassen kannst,
    damit Du die neue Höhe und Breite der im iFrame dargestellten Seite
    auslesen kannst, damit Du erneut die Höhe und die Breite des iFrame
    anpassen kannst, damit Du ....

    Du drehst Dich im Kreis. ;-)

    Du brauchst zumindest eine fixe Größe, damit Du Deine Berechnungen
    anpassen kannst. Ich schlage mal die Breite des iFrames vor. Dadurch
    hat die im iFrame angezeigte Seite automatisch eine Breite und dadurch
    auch eine bestimmte Länge. Dann müßte in der Theorie die Länge des iFrames
    angepaßt werden.

    Jedoch fehlen mir dummerweise jegliche Programmiertechnischen Befehle bzw
    Kenntnisse dazu, so dass ich leider aufgeben musste.

    Das ganze muß auf Seitendes Clients, sprich des Browsers stattfinden. Die
    dazugehörige Programmiersprache nennt sich Javascript. Deine Aufgabe
    zerfällt nun in folgende Teilschritte:

    (1) Definition eines iFrames mit fester Breite und Höhe.
    (2) Auslesen der Höhe des im iFrame dargestellten Dokumentes.
    (3) Ändern der Höhe des iFrames.

    (1) ist kein Problem, da das ganze im HTML-Quelltext stattfindet.

    (3) dürfte auch kein Problem sein. Man spricht den iFrame im DOM
    irgendwie an, bespielseise über eine ID und ändert dann dessen Höhe.

    (2) ist der Casus Knacktus. So wie ich das sehe, gibt es keine Möglichkeit,
    herauszubekommen, wie lang ein Dokument ist. Es gibt zwar die Eigenschaft
    innerHeight (http://selfhtml.teamone.de/javascript/objekte/window.htm#inner_height),
    aber diese bezieht sich nur auf die Höhe der Anzeigefläche nicht auf die
    Höhe des tatsächlichen Dokumentes, von dem im Falle von Übergröße ja nur
    ein Teil im Anzeigebereich zu sehen ist.

    Man muß also irgendwoanders her wissen, wie lang das eingebettete Dokument
    ist. Dies geht streng genommen nur bei eingebetteten Bildern. Die Länge von
    HTML-Dokumente ist von zu vielen Faktoren abhängig, von dem Inhalt, von
    der zur Verfügung stehenden Breite, von der Schriftgröße, von ewaigem
    Text-Zoom beim Anwender.

    Abgesehen davon ist es auch sinnlos. Weiß man vorher, wie lang das
    eingebettete HTML-Dokument ist, kann man diese Angaben auch direkt bei
    der Definition des iFrames benutzen, anstatt sie nachträglich dynamisch
    zu ergänzen.

    Wie gesagt, an Deiner Stelle würde ich auf iFrames verzichten und obige
    Lösung benutzen, d.h. nur ein HTML-Dokument ausliefern. Da HTML und CSS
    eingebaute Fluidität haben, paßt sich das Dokument der Anzeigefläche des
    Browsers an. Wenn dann da ein Scrollbalken ist, ist es der gewohnte des
    Browsers und nicht einem mittem im Dokument.

    • Tim
    --
    tft-bm: iFrames anpassen
    1. Hallo Tim,

      erstmal danke für deine Antwort!

      Verständlich. Ich an Deiner Stelle würde jedoch den Quelltext der Datei
      im iFrame bereits im Editor oder auf dem Server in den Quelltext der
      Datei mit dem iFrame einsetzen (natürlich ohne head und body), damit
      ich mich nicht mit dem iFrame rumärgern muß und nur ein HTML-Dokument
      ausgeliefert werden muß. Gute Editoren habe dafür eine Include-Technik;
      auf dem Server geht das mittels SSI, PHP oder Perl bzw. sonstiger
      Programmiersprachen.

      Dummerweise werd ich auch das nicht ohne fremde Hilfe hinbekommen.
      Die Fehler meiner methode hast du mir ja vorzüglich auferlegt. allerdings wollte ich es nicht über php o.Ä. machen. ich hab mir wieder was überlegt:
      Wenn ich nun eine bestimmte größe festlege, dann per javascript (die einzig mir halbwegs mögliche erlernbare programmiersprache) abfragen, ob sich im iFrame ein scrollbalken befindet. Sollte dies der fall sein, dann wird er mittels einer schleife einfach etwas vergrößert, wieder abgefragt, bis der scrollbalken verschwunden ist. dies könnte doch auch als mögliche lösung in betracht gezogen werden, oder gibt es auch hierbei Einwände deinerseits?

      Bin für jede hilfe dankbar!

      MfG Patrick