Christian Ludwig: dynamische iFrames und NS6

Hi,
folgendes Problem:

ich habe eine Seite mit einem iFrame, der nested auf einem DIV-Layer (id="cdiv") liegt. Der Inhalt dieses iFrames wird dynamisch per
document.getElementById('iframe1').src=dieURL;
geladen.
Das Problem ist, dass sich die größe des iFrames nicht dynamisch an die Länge des geladenen Dokuments anpasst und somit abgeschnitten wird.
Folgende Lösungsansätze mit folgender Funktion, die beim NS4 und IE einwandfrei funktioniert. Jedoch bekomme ich die Höhe des neu geladenen Dokuments beim NS6 (is_DOM) einfach nicht heraus. Auch der IE5 auf dem MAC hat damit scheinbar Probleme, deshalb die fixe Höhe von 2500px.

function iFrameHoehe(){
  if (is_NS4) {
 layerHeight = document.layers['cdiv'].document.layers['ilayer1'].clip.height + 182;
// DocumentHeight ist die Höhe des Hauptdokuments.
    if (layerHeight < DocumentHeight) {
      layerHeight = DocumentHeight;
    }
      document.layers['cdiv'].window.document.height = layerHeight;
      document.layers['cdiv'].clip.height = layerHeight;
  }
  if (is_IE){
    if (is_mac)
      document.all('iframe1').style.height = 2500;
    else
      document.all('iframe1').style.height = document.iframe1.document.body.scrollHeight;
  }
  else if (is_DOM) {
//    alert(document.getElementById('iframe1').offsetHeight);
//    document.getElementById('iframe1').style.height = document.getElementById('iframe1').body.scrollHeight;
//    document.getElementById('iframe1').style.height = document.getElementById('iframe1').height;
    document.getElementById('iframe1').style.height = 2500;
  }
}

Hat da jemand eine Lösung parat?

Danke
Christian

  1. versuchs mal mit resizeTo(x,y)

    1. Da habe ich mich wohl falsch ausgedrückt.
      Die Größe des iFrames kann ich sehrwohl beliebig ändern. Ich bekomme aber nicht heraus, wie hoch das geladene Dokument nun wirklich ist.

      Suche also eine vergleichbare Funktion für NS6 wie:
      document.layers['ilayer1'].clip.height
      beim NS4 oder
      document.iframe1.document.body.scrollHeight
      beim IE.

      Christian

  2. hi,

    teste doch mal sowas:

    document.getElementById('xyz').firstChild.offsetHeight;

    eventuell noch tiefer gehen in der child-hierarchie

    hth

    Gruesse  Joachim

    1. Hi,

      document.getElementById('xyz').firstChild.offsetHeight;

      Hab ich probiert, leider nicht erfolgreich.

      eventuell noch tiefer gehen in der child-hierarchie

      Was meinst du mit noch tiefer?
      document.getElementById('iframe1').childNodes.length
      lieferte mir als Wert eine 0 zurück. Mir scheint, als gebe es keine Child-Objekte.

      Ciao

  3. Noch was,
    die Funktion

    function iFrameHoehe(){

    rufe ich per onLoad="iFrameHoehe()" von jedem Dokument aus auf, das in den iFrame geladen wird.