Hallo
Statt über setAttribute() kannst du die Höhe deines iframes wohl auch über die CSS-Angaben dynamisch verändern:
Hmm, also steht das dann in der .css-Datei oder wie?
Nein, eine externe CSS-Datei brauchst du dafür nicht. Du kannst Styles innerhalb des Dokuments entweder im Head-Bereich definieren, oder auch inline. Für dein Problem brauchst du zuerste einmal aber überhaupt keine CSS-Angaben, sondern ür die entsprechenden Elemente nur ID-Attribute. Wenn du die vergeben hast kannst du CSS-Angaben auch nachträglich mit JavaScript verändern oder auch überhaupt erst setzen.
Was du brauchst ist zuerst einmal in allen HTML-Dokumenten, die du im IFRAME einblenden willst, ein alles umschließendes DIV-Element, dem du immer wieder dieselbe ID gibst z.B. id="inhalt".
Damit der Inhalt sich auch ohne Rand über den ganzen Body erstreckt, solltest du auch noch im Body schreiben <body topmargin="0" leftmargin="0" marginheight="0" und marginwidth="0">
Letzte beiden Attribute sind zwar nicht valide, wirken aber auch in mozilla-basierten Browsern. Du kannst es aber auch mit style="margin:0px;padding:0px" im Body-Tag versuchen, das sollte auch wirken.
Dein IFRAME-Tag in der übergeordneten Seite bekommt auch ein ID-Attribut verpasst, damit du es später mit JS ansprechen kannst, z.B. sieht das dann so aus
<iframe src="eineDatei.html" id="meinIframe" onLoad="anpassen()"></iframe>
Im Head-Bereich deiner übergeordneten Seite definierst du die Funktion:
function anpassen(){
document.getElementById('meinIframe').style.height = document.getElementById('meinIframe').document.getElementById('inhalt').offsetHeight + 'px'; //alles in einer Zeile!
}
Viellecht gibst du sicherheitshalber noch ein paar Pixel an der Höhe hinzu, damit auch tatsächlich kein Scrollbalken im IFRAME entsteht. Wenn du das machst, kannst du innerhalb des Iframes auch vielleicht doch noch einen gewissen Abstand vom Rand einhalten.
Du kannst aber auch im IFRAME zusätzlich scrolling="no" schreiben, um den scrollbalken zu unterdrücken.
Das ist alles Theorie, ich habe es nicht getestet, funktioniert vielleicht auch nicht in allen Browsern, aber probier's doch mal aus und berichte, du hast ja die Dateien schon und musst sie nur noch ein bisschen anpassen.
Ich hätte sonst auch noch andere Ideen, wenn's in einigen Browsern Probleme gibt, wie man das vielleicht dort regeln könnte.
Gruß Gernot