Cervin: iFrame höhe über JS anpassen

Hallo liebe Selfhtml'ler :)

Ich hatte vor ca 2 Monaten schonmal dasselbe problem,
und dies dann alternativ gelöst.

HAL hatte mir damals schon geholfen,
problem bleibt dasselbe, umfeld aber nicht.
Da das wirklich das zweite mal ist, indem ich
JS neben dem standard flash code nutze komm ich
selbst mit dem einfachen kram nicht so klar :)

Ich hoffe, das wird dann relativ einfach für euch.

WAS soll die Funktion bewirken:

In meinem "frameset" (index.html mit mehreren iFrames)
soll es JS Code der die Höhe des iFrames mit der ID "main"
ändern soll. Die entsprechende Höhenangabe sollte variabel sein,
und in der inhalts.html des iFrames stehen.

Sprich: Ich lade die seite 1.html in den iFrame. Daraufhin sagt
die 1.html "änder die höhe des iFrames auf 20px".
Danach lade ich die 2.html in den iFrame. Die wiederum sagt "änder
die iFrame höhe auf 55" etc. pp.

Dafür brauch ich jetzt eine Lösung.
Idee war einfach in die index.html HALs code zu nehmen:

<script language="javascript">
function changeframe(hoch) {
   document.getElementById('main').style.height=hoch+"px";
}
</script>

und in der 1.html das dingen einfach abzurufen.

<script language="JavaScript">
changeframe(20);
</script>

Aber so leicht gehorcht mit JS nun wirklich nicht ^^

Falls von nöten, der iFrame sieht so aus:

<iframe src="home.html" width="617" height="1300" align="left" scrolling="auto" frameborder="0" name="main" id="main"></iframe>

Hoffe ihr könnt mir helfen,

lg,
Cerv

  1. Hallo Cerv,

    Aus Sicht des Dokuments im Iframe ist wie folgt zuzugreifen:

    parent.changeframe(20);

    Weiterhin noch zwei kleine Anmerkungen:

    1. Das script tag erfordert type, nicht language, d.h. korrekterweise schreibst du: <script type="text/javascript">
    2. Der Zugriff aus dem Iframe auf das Elternelement klappt nur, wenn beide Seiten der "same origin policy" folgen.

    Gruß,
    R.

    1. Hi R.

      Auf diesen essentiellen Fehler wäre ich wirklich nie gekommen.
      Direkt eingegeben und funktioniert genau wie ich will!

      Super, VIEEELEN Dank!

  2. Hallo liebe Selfhtml'ler :)

    Ich hatte vor ca 2 Monaten schonmal dasselbe problem,
    und dies dann alternativ gelöst.

    Opa Horst macht das so:
    Im javascript prüfe ich die reale Fensterhöhe.
    ziehe 125 Pixel für den Seitenkopf ab und weise den Wert zu.

    if (window.innerHeight) {Y= window.innerHeight; }
       else if
       (document.body && document.body.offsetHeight){ Y= document.body.offsetHeight; }
    L=Y-125;
    document.getElementById("forfram").style.height=L;

    die Definition des Frames steht am Seitenende im Html-Bereich:

    <div id = 'forfram'>
    <iframe id='iframe1' src='' name='inhalt'  width=scrw height='<?php echo"$ANZ_Fenster_hoch ";?>' border: 0px;>
    </div>

    hoffentlich klapps