iFrame-Höhe, die sich dem Inhalt anpasst

exiter28

Erfahrenes Mitglied
hallo Jungs,

ich hab folgendes Problem. mit einem i-frame rufe ich ein gästebuch auf. Das Problem ist
nun, daß der i-frame sich nicht der höhe anpasst. Also wenn die Einträge mehr werden, dann
sollte sich auch der frame daran anpassen. Ich hab das schon mit style="heigt:auto;" versucht, aber
das geht leider nicht.

Hat einer einen Tip für mich?

Besten Dank schon mal!
 
Hi,

für dein Vorhaben benötigst du in diesem Fall Javascript.

Ein Lösungsbeispiel findest du hier: http://www.doktormolle.de/temp/iframe_resize2/

mfg Maik

Hi Maik,

danke für Deinen Tipr, aber leider funktioniert das nicht.

mein Code sieht so aus:

HTML:
<html>
<head>
<title>Test</title>
<script type="text/javascript">

function resize_me(n){
  d=10;

  ifObj=document.getElementsByName(n)[0];

  p=(document.all)?'scroll':'offset';

  // w = (W3C-DOM)? Breite in px : ((IEs)? Breite in px : Breite in px sonstige Browser)
  w = (window.getComputedStyle)? window.getComputedStyle(ifObj, null).getPropertyValue('width') :
                               ((ifObj.currentStyle) ? ifObj.currentStyle['width'] : eval("window.frames[n].document.getElementsByTagName('body')[0]."+p+"Width+"+20+"+'px'"));

  ifObj.style.width = w;
  eval("ifObj.style.height=Math.max(200,window.frames[n].document.getElementsByTagName('body')[0]."+p+"Height+"+d+")+'px'");
}

</script>

</head>
<body>

<iframe frameborder="0" framespacing="0" border="0"  width="97%" frameborder="0" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" noresize src="http://gästebuch.de">:o(</iframe>

oder mache ich noch was falsch?
 
Der iFrame benötigt noch einen Namen, z.B. name="content", und das Dokument, das darin geladen wird, folgende Ergänzung im <body>-Tag:

HTML:
<body onload="parent.resize_me('content')">


mfg Maik
 
Der iFrame benötigt noch einen Namen, z.B. name="content", und das Dokument, das darin geladen wird, folgende Ergänzung im <body>-Tag:

HTML:
<body onload="parent.resize_me('content')">


mfg Maik

Vielen Dank! jetzt funktionierts. Jedoch hab ich jetzt ein Problem mit meinem Navi - Bereich.
Sobald ich im body den onload setze, funtkioniert mein Navigationsbereich nicht mehr.
Also das auf und zuklappen der Untermenüs. Kann man den onload auch an einer anderen Stelle
setzen?


Danke!
 
Nö, der gehört in den <body>-Tag.

Oder du versuchst es alternativ im Dokumentheader mittels window.onload in einem <script></script>-Bereich.

mfg Maik
 
Zur Verdeutlichung, wovon ich eben gesprochen habe:

HTML:
<html>
<head>
<title>Test</title>

<script type="text/javascript">
<!--
function resize_iframe() {
    parent.resize_me('content');
}
window.onload = function() {
    resize_iframe();
}
//-->
</script>

</head>
<body>
...
</body>
</html>


Vermutlich läuft dein Navigationsmenü mit JS, und besitzt ebenfalls solch einen onload-Event.

So hast du nun die Möglichkeit, alle Funktionen darin aufzunehmen, die beim Seitenaufruf initialisiert werden sollen:

Javascript:
window.onload = function() {
    function1();
    function2();
}

mfg Maik
 
Zur Verdeutlichung, wovon ich eben gesprochen habe:

HTML:
<html>
<head>
<title>Test</title>

<script type="text/javascript">
<!--
function resize_iframe() {
    parent.resize_me('content');
}
window.onload = function() {
    resize_iframe();
}
//-->
</script>

</head>
<body>
...
</body>
</html>


Vermutlich läuft dein Navigationsmenü mit JS, und besitzt ebenfalls solch einen onload-Event.

So hast du nun die Möglichkeit, alle Funktionen darin aufzunehmen, die beim Seitenaufruf initialisiert werden sollen:

Javascript:
window.onload = function() {
    function1();
    function2();
}

mfg Maik

Hi Maik,

besten Dank für die Infos. Ich versuchs mal.
 

Neue Beiträge

Zurück