BennY: Vollständige Anzeige in iFrames

Hallo @ all!

Ich hab auf meiner page ein iframe eingefügt.. in dem ich den Inhalt anzeigen lassen will..

meien frage dazu: wie sage ich dem iframe das es sich an den inhalt anpassen soll?!?...
also damit ich nicht scrollen muss... das es automatisch so gross ist wie der einzufügende inhalt?!?..

help plz.. :/

cu

  1. meien frage dazu: wie sage ich dem iframe das es sich an den inhalt anpassen soll?!?...

    Mit JavaScript http://selfhtml.teamone.de/javascript/objekte/frames.htm

    also damit ich nicht scrollen muss... das es automatisch so gross ist wie der einzufügende inhalt?!?..

    Meiner Einschätzung nach, ist das sinnlos.

    1. warum sinnlos?!

      schau:

      ich hab links meine navi und rechts will ich ein iframe einbaun in dem der inhalt angezeigt werden soll....

      allerdings ist es im moment so das das iframe zwar von der breite passt aber nur 100 pixel oder so hoch ist..

      aber ich will das wenn z.b. der inhalt 800 pixel hoch ist das sich das iframe dem anpasst das alles ohne scrollen zu sehen ist...

      1. Moin!

        warum sinnlos?!

        Weil IFrames für deine Aufgabenstellung nicht geschaffen wurden.

        allerdings ist es im moment so das das iframe zwar von der breite passt aber nur 100 pixel oder so hoch ist..

        Warum ist es so klein?

        IFrames sind üblicherweise im sie enthaltenden Dokument mit einer festen (Prozentwerte sind in diesem Sinne fest) Größe definiert, damit sie in diesem Dokument einen gewissen, definierten Raum einnehmen.

        aber ich will das wenn z.b. der inhalt 800 pixel hoch ist das sich das iframe dem anpasst das alles ohne scrollen zu sehen ist...

        Wird nicht funktionieren.

        Das, was du eigentlich verwenden willst, sind echte Frames. Damit kannst du einen Bereich des Browserfensters abgrenzen, und alles, was dort hineingeladen wird, scrollt, sofern es größer als der Platz ist, aber ohne, dass der Rest mitscrollt.

        Oder du willst eine serverseitige Technik einsetzen, die dir immer komplette HTML-Seiten mit Navigation und Inhalt auswirft, aber ohne jegliche Frames oder IFrames, die du dann im Browserfenster komplett scrollen kannst, sofern sie länger sind. (Als serverseitige Technik sei in diesem Zusammenhang auch das nicht-dynamische Vorhalten entsprechend gefertigter Seiten verstanden, die in dieser Form beispielsweise von einem intelligenten Editor aufbereitet wurden - Stichwort "Includes" von Phase5 z.B.)

        Eine dieser zwei Lösungen macht Sinn für dein Problem. Es macht aber keinen Sinn, die Lösung so anzugehen, wie du es gerade versuchst. Einfach weil es nicht funktioniert ("funktioniert nicht" schließt hierbei nicht die Möglichkeit aus, dass es in Einzelfällen mit bestimmten Browsern vielleicht doch funktioniert).

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      2. FsmE,

        allerdings ist es im moment so das das iframe zwar von der breite passt aber nur 100 pixel oder so hoch ist..

        <style type='text/css'>
        <!--
        iframe {width:80%;height:80%;}
        //-->
        </style>

        Damit kannst Du die Größe festlegen. Gültig sind natürlich auch Pixelangaben. Variable Größe je nach Inhalt ist nicht.

        aber ich will das wenn z.b. der inhalt 800 pixel hoch ist das sich das iframe dem anpasst das alles ohne scrollen zu sehen ist...

        In der zu ladenden Datei:

        <style type='text/css'>
        <!--
        body {overflow:auto}
        //-->
        </style>

        Damit bestimmst Du das Verhalten der geladenen Datei *innerhalb* des Frames. In diesem Fall (auto) gibt es keinen Scrollbalken, wenn der Inhalt kleiner ist, aber dann einen, wenn er größer ist.

        <file:///C:/selfthtml/css/eigenschaften/positionierung.htm#overflow>

        Mit Javascript kannst Du den Ladevorgang auch zum dynamischen Setzen dieser CSS-Eigenschaft kombinieren, z.B.:

        ...
        frames[0].location.href = 'xyz.html'
        setTimeout("frames[0].document.getElementsByTagName('body')[0].style.overflow = 'auto'",30)
        ...

        Der Timeout dient dazu, dem Ladevorgang einen gewissen Vorsprung zu geben, weil das Script sonst nicht auf das "body"-Element zugreifen kann.

        In sensibus mistis,
        HaThoV

        --
        Besuchen Sie http://www.4html.de, wenn Sie an einer
        Neuen Generation von Web-Publishing mitarbeiten wollen.