flavio: iframe soll grösse automatisch anpassen

hallo leute!

ich hab mir ne page gebaut aus 1 spalte und 3 zeilen.

in der mittleren zeile hab ich ein iframe eingefügt.

jetzt will ich, dass das iframe seine grösse automatisch anpasst, an den html's die ich im frame anzeigen will.

also sprich, wenn ich einen ultra langen text habe, soll die mittlere zeile mit dem iframe einfach grösser werden, sodass der ganze text ohne zu scrollen sichtbar ist. ich will aber keine fixe grösse angeben, sondern, dass sich das iframe immer der grösse des inhalts den ich reinladen will verändert. so dass immer alles sichtbar ist.

wie schaff ich das?

wäre sehr froh um eure hilfe

mfg flavio

  1. Hi,

    jetzt will ich, dass das iframe seine grösse automatisch anpasst, an den html's die ich im frame anzeigen will.

    geht nicht (außer sehr unschön mit Javascript). Ist das iframe denn überhaupt nötig?

    freundliche Grüße
    Ingo

    1. hallo,
      danke für dein intressse

      ja wie soll ich das ganze anders als mit einem iframe lösen?

      ich hab eine grafik gemacht im photoshop, diese in kleinere stücke zerschnitten... header, footer und das mainframe

      diese stücke hab ich dann auf die 3 zeilen verteilt... jetzt hab ich hyperlinks im header über die ich weitere html files in den iframe verlinke.

      würds denn schon nur mit tabellen gehen?

      ich kann einer tabelle ja nicht einfach einen namen (name="mainframe") geben?

      gruss flavio

      1. Hi,

        würds denn schon nur mit tabellen gehen?

        Ja. Sogar ohne.

        ich kann einer tabelle ja nicht einfach einen namen (name="mainframe") geben?

        Mußt Du auch nicht. Du kannst eine komplette Seite erstellen, in der nur der Inhalt geändert ist. Das hätte diverse Vorteile und ist der "übliche" Weg.

        freundliche Grüße
        Ingo

  2. Hallo Flavio,

    versuchs mal damit: hab ich auch im Einsatz. Klappt wunderbar. Das habe ich übrigens vom Kollgen Spy. Nocmals mein Dank an ihn.

    function pollReadyState()
    {
     if (document.frames["dynamicFrame"].document.readyState == "complete")
     {
      iFrameResize();
     }
     else
     {
      setTimeout("pollReadyState()",500);
     }
    }

    function iFrameResize()
    {
      var bodyHeight = dynamicFrame.document.body.scrollHeight + 20;
     document.getElementsByTagName("iframe")[0].setAttribute("height", bodyHeight);
    }

    solltest Du MS IE nutzen, so musst Du folgendes noch einfügen:

    <iframe onLoad="iFrameResize();" src="startseite.htm" name="dynamicFrame" id="dynamicFrame" width="100%" scrolling="no" frameborder="0"></iframe>

    // Diese Passage direkt hinter dem <IFRAME>-Tag einfügen
    <script language="javascript">
       if (navigator.appName == 'Microsoft Internet Explorer')
        {
         pollReadyState();
        }
    </script>

    hallo leute!

    ich hab mir ne page gebaut aus 1 spalte und 3 zeilen.

    in der mittleren zeile hab ich ein iframe eingefügt.

    jetzt will ich, dass das iframe seine grösse automatisch anpasst, an den html's die ich im frame anzeigen will.

    also sprich, wenn ich einen ultra langen text habe, soll die mittlere zeile mit dem iframe einfach grösser werden, sodass der ganze text ohne zu scrollen sichtbar ist. ich will aber keine fixe grösse angeben, sondern, dass sich das iframe immer der grösse des inhalts den ich reinladen will verändert. so dass immer alles sichtbar ist.

    wie schaff ich das?

    wäre sehr froh um eure hilfe

    mfg flavio

    1. scheint ja dass es mehrere lösungen gibt!

      vielen dank für deine mühe!!!

  3. ah hab die lösung gefunden!

    für alle die nicht mehr suchen wollen:

    hier die lösung:

    <html>
    <head>
    <script language="JavaScript" type="text/javascript">
    <!--
    function size(){
    var x = screen.availWidth;
    var y = screen.availHeight;

    //gegebenfalls noch eine "Sicherheitsabstand" von X und Y abziehen
    x = x*0.9;
    y = y*0.9;
    document.getElementById('frame').width = "100%";
    document.getElementById('frame').height = y;
    }
    //-->
    </script>
    </head>
    <body onLoad="size()">
    <iframe name="frame" id="frame" src="people.htm"> </iframe>
    </body>
    </html>

    gruss

    1. Hallo Flavio,
      bei dieser Lösung stimmt aber einiges noch nicht. Es scheint nicht zu klappen. Die Grösse des Frames ändert sich nicht.

      Hast Du vielleicht etwas übersehen?

      ah hab die lösung gefunden!

      für alle die nicht mehr suchen wollen:

      hier die lösung:

      <html>
      <head>
      <script language="JavaScript" type="text/javascript">
      <!--
      function size(){
      var x = screen.availWidth;
      var y = screen.availHeight;

      //gegebenfalls noch eine "Sicherheitsabstand" von X und Y abziehen
      x = x*0.9;
      y = y*0.9;
      document.getElementById('frame').width = "100%";
      document.getElementById('frame').height = y;
      }
      //-->
      </script>
      </head>
      <body onLoad="size()">
      <iframe name="frame" id="frame" src="people.htm"> </iframe>
      </body>
      </html>

      gruss