monchichi: Iframe aktuallisieren, onClick... Endlich!

Hi Leutz,

Nach langer Suche hab ich endlich ein Script gefunden das es ermöglicht einen Iframe mit onClick an die aktuelle Größe des Bodys anzupassen. Der Hintergrund dabei war, nach einem display: none (der header des Dokuments, bzw die Navi verschwindet)den Iframe an den Content bzw die neue Größe des bodys anzupassen.
Eigentlich sollte dies automatisch gehn, aber da der Iframe in einem anderen umfangreichern Script generiert wird und die Grösse mit offsetHeight fixiert wird, ging da leider nichts.Nun gut, um auf den Punkt zu kommen.Das folgende script löst das Problem wunderbar aber leider nur im IE, beim Firefox die neueste Version leider nada ;(
Zu meiner Bitte, könnte mir jemand Sagen was ich tun muss um das Script auch im Firefox zum laufen zu bringen?

Im Head:
<script language="JavaScript" type="text/javascript">
function atualizaIframe(){
    parent.document.getElementById("iframe").style.height = '0'; //Zera a altura para 0
    var tamanho = document.getElementById("body").offsetHeight;
    parent.document.getElementById("iframe").style.height = tamanho; //Seta a nova altura.
}
</script>

<body id="body">

<a href="#" onclick="atualizaIframe();" style="text-decoration: none; font-size: 0.8em; font-family: Arial; color: blue">Go!</a>

  1. Hallo,

    bin mir nicht sicher, habe aber eine Vermutung. Du könntest Testweise mal die Zeile:
    parent.document.getElementById("iframe").style.height = '0'; //Zera a altura para 0

    hherausnehmen. Es könnte sein, dass der FireFox die Höhe des Body automatisch verringert, wenn Du den IFrame auf Höhe 0 setzt und keine weiteren Inhalte im Body sind. (Oder kleinere).
    Villeicht gehts dann. Wenn nicht gib nochmal mehr Infos:

    • gibt der FireFox eine Fehlermeldung? Oder passiert einfach nix.
    • Befindet sich der Link mit dem "onClick" IN dem Iframe oder ausserhalb des IFrames?

    Schöne Grüße
    Axel

    1. Hallo,

      bin mir nicht sicher, habe aber eine Vermutung. Du könntest Testweise mal die Zeile:
      parent.document.getElementById("iframe").style.height = '0'; //Zera a altura para 0

      hherausnehmen. Es könnte sein, dass der FireFox die Höhe des Body automatisch verringert, wenn Du den IFrame auf Höhe 0 setzt und keine weiteren Inhalte im Body sind. (Oder kleinere).
      Villeicht gehts dann. Wenn nicht gib nochmal mehr Infos:

      • gibt der FireFox eine Fehlermeldung? Oder passiert einfach nix.
      • Befindet sich der Link mit dem "onClick" IN dem Iframe oder ausserhalb des IFrames?

      Schöne Grüße
      Axel

      Hallo Axel,

      Erstmal Danke an dich für die rasche Antwort!

      Hatte mich verfranzt ich Dummi! Das Script geht in beiden Browsern, leider nur erst nach dem es bei dem ausserhalb des Iframes liegenden href's min. einmal bereits angeklickt wurde. Also erst nach dem der onClick event min. einmal ausgeführt wurde. Was mir beim erstenmal auch nicht auffiel, ist die Tatsache das die Vergrösserung des Iframes zwar funktioniert aber die Verkleinerung nicht mehr ;( Bedeutet für mich erstma das Aus. Zur Erklärung, das Problem besteht darin das der Script des Iframes die Navi und den Content definiert, ausführt usw. Die Funktion des display:none (zum versenken der Navi) stammt von mir und ist eigentlich nicht vorgesehen, wenn man das Navi also versenkt entsteht ein ungenutzter Freiraum unter dem Iframe (zu dreiviertel genutzte Seite). Wollte also eine Funktion beim versenken der Navi die dem Iframe erzählt das er sich doch bitte jetzt etwas streckt, naja ans verkleinern hab ich aber nicht gedacht...Schätzr ich werd mal das Projekt neu überdenken müssen oder Javascript lernen lol. Dennoch Danke :) Schöne Grüße, monchichi

  2. var tamanho = document.getElementById("body").offsetHeight;
        parent.document.getElementById("iframe").style.height = tamanho; //Seta a nova altura.

    Du setzt hier einen Integerwert auf einen String, der auch eine Einheit erwartet, entweder 'px', 'em', '%' oder 'ex'

    Wenn das bei dir im IE geht, dann ist deine Seite evtl. im Quirksmode, von dem abzuraten ist.

    Struppi.