Metin: DYNAMISCHES IFRAME

Hallo,

kann mir jemand sagen, ob es möglich ist, ein IFRAME in der Breite und Höhe "automatisch" zu gestalten? Das IFRAME soll je nach Länge der dargestellten Seite länger bzw. kürzer, breiter oder schmaler sein.

Ist so etwas überhaupt möglich ?

Danke für jeden Tip.

Metin

  1. Hallo,

    Das IFRAME soll je nach Länge der dargestellten Seite länger bzw. kürzer, breiter oder schmaler sein.
    Ist so etwas überhaupt möglich ?

    Habe schon damit rumexperimentiert, mir ist es nicht gelungen. Offenbar können die Browser ein iFrame nicht nachträglich (wenn der Inhalt geladen ist) ändern, obwohl genau das bei anderen tags (div, table, ...) ja geht.

    LG Kalle

    1. Dein Fall wäre aber wohl mit Server- Sided Includes SSI zu lösen.

      Fehler

      Das Format Ihres Postings scheint unsauber zu sein (z. B. keine Zeilenumbrüche, keine Satzzeichen, alles Kleingeschrieben oder ähnliches). Solche Postings sind ungern gesehen, da sie oft schwer zu lesen sind. Sind Sie sicher, dass Sie so posten möchten?

      Na, gut:

      Dein
       Fall
       wäre
       aber
       wohl
       mit
       Server-
       Sided
       Includes
       SSI
       zu
       lösen.

      Besser ?

      LG Kalle

      1. Hallo Kalle,

        Das Format Ihres Postings scheint unsauber zu sein (z. B. keine Zeilenumbrüche, keine Satzzeichen, alles Kleingeschrieben oder ähnliches). Solche Postings sind ungern gesehen, da sie oft schwer zu lesen sind. Sind Sie sicher, dass Sie so posten möchten?

        *seufz* ist es wirklich _so_ schwer mal zu lesen was das Forum sagt? Warum drückst du nicht einfach nochmal auf "Nachricht absenden" wenn du dir sicher bist, dass du dein Posting so abschicken willst?

        Grüße aus Nürnberg
        Tobias

        1. Hallo Tobias,

          *seufz* ist es wirklich _so_ schwer mal zu lesen was das Forum sagt? Warum drückst du nicht einfach nochmal auf "Nachricht absenden" wenn du dir sicher bist, dass du dein Posting so abschicken willst?

          Weil ich die Vorlage für den kleinen Gag einfach mitnehmen musste. Sorry, so bin ich eben.

          Gruß, Kalle

  2. Hallo Metin,

    Ist so etwas überhaupt möglich ?

    Ja, so was ist möglich. Ich habe volgenden JS-Code für eine dynamische Anpassung der Höhe im Einsatz.

    // hier fängt der Javascript-Bereich an
    // check if iFrame is loaded (only used by IE)
    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);
    }
    ...
    ...
    ...
    HTML-Code

    <iframe onLoad="iFrameResize();" src="meineSeite.html" name="dynamicFrame" id="dynamicFrame" scrolling="no" frameborder="0"></iframe>

    <!-- Diesen Script-Bereich braucht man wegen dem IE. Dieser Bereich muss hinter dem <iframe>-Tag stehen -->
    <script language="javascript">
    <!--- IE 5.0 does not understand the onLoad event in the iFrame tag. Netscape uses the onLoad event to resize the iFrame --->
     if (navigator.appName == 'Microsoft Internet Explorer')
          {
           pollReadyState();
          }
    </script>

    //ENDE

    Hoffe es hilft Dir weiter. Du musst halt noch die Breite ergänzen.
    Gruss
    spy

    1. Hallo Spy,

      ich habe Deinen Text wie unten einkopiert, in meine Seite eingebunden. Doch die Höhe des IFRAME passt sich nicht der Länge der Seite an. Mache ich da etwas falsch ?

      Wäre dankbar für einen Vorschlag.

      Metin

      <script type="text/javascript">

      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);
      }
      </script>

      </head>
      .
      .
      .

      <td width="60%" valign="top">

      <iframe onLoad="iFrameResize();" src="html/startseite.htm" name="dynamicFrame" id="dynamicFrame" width="100%" height="bodyHeight" scrolling="no" frameborder="0"></iframe>
      <script language="javascript">
       if (navigator.appName == 'Microsoft Internet Explorer')
       {
        pollReadyState();
       }
      </script>
         </td>

      Hallo Metin,

      Ist so etwas überhaupt möglich ?

      Ja, so was ist möglich. Ich habe volgenden JS-Code für eine dynamische Anpassung der Höhe im Einsatz.

      // hier fängt der Javascript-Bereich an
      // check if iFrame is loaded (only used by IE)
      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);
      }
      ...
      ...
      ...
      HTML-Code

      <iframe onLoad="iFrameResize();" src="meineSeite.html" name="dynamicFrame" id="dynamicFrame" scrolling="no" frameborder="0"></iframe>

      <!-- Diesen Script-Bereich braucht man wegen dem IE. Dieser Bereich muss hinter dem <iframe>-Tag stehen -->
      <script language="javascript">
      <!--- IE 5.0 does not understand the onLoad event in the iFrame tag. Netscape uses the onLoad event to resize the iFrame --->
      if (navigator.appName == 'Microsoft Internet Explorer')
            {
             pollReadyState();
            }
      </script>

      //ENDE

      Hoffe es hilft Dir weiter. Du musst halt noch die Breite ergänzen.
      Gruss
      spy