Hallo Gernot,
ich habe an dem Code einiges umgestellt, weil das bei mir unter Windows 98 trotz Korrectur des Rechtschreibfehlers (appendChild) gar nicht funktionierte.
Das bin typisch ich: Erst im Textarea des Forums etwas zusammenzuschustern, dann die Änderungen, die bei der Probe auf dem PC entstehen, nicht zu übernehmen. Danke für die Korrektur.
Aber danke für die guten Anregungen Eddi, alleine hätte ich wahrscheinlich eher was mit visibility gefummelt, so war's mal was anderes.
Im allgemeinen ärgere ich mich schon wieder über meinen Ansatz. Er arbeitet völlig gegen jetwede Vernunft. Im Eigentlichen sollte der iframe immer einen Scrollbalken haben, der im Falle aktiviertem JavaScripts erst entfernt wird und dann eine JS-Lösung bereit hält.
Die Inhalte der eingebetteten Dokumente müssen in einem alles umschließenden Div-Element (quasi Einzelkind des Body-Element) stehen, da das Body-Element selbst ansonsten immer den gleichen Wert bei offsetHeight hat wie die Höhe des Iframes auf der Mutterseite, in den er als Source geladen wird. Das taugt folglich nicht als Bedingung zum Hinzufügen bzw. Entfernen der Scrollbuttons.
Doch doch...
Bei der index.html hast Du wenigstens noch den Doctype <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> vergeben, jedoch nicht mehr bei der voll.html.
Wenn ich mich recht erinnere, so wird auch beim IE 6 mit der exakten Angabe (<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">) jedenfalls jedoch in der Variante strict der body nicht auf die gesamte Anzeigefläche ausgedehnt.
Was dennoch rechtkurzsichtig ist, da Deine Methode prinzipiell auch ältere Browser mitmachen.
Die folgende Seite läuft bei mir im MSIE 6.0, Mozilla 1.6 und Netscape 7.1. Opera 7.11 generiert zwar die Buttons, je nachdem, ob zuerst die Seite 'voll.html' oder 'leer.html' geladen wird dynamisch, hat aber aufgrund irgendwelcher Umstände Probleme mit meiner Funktion 'change()'. Vielleicht packt das aber eine neuere Version von Opera.
Für sachdienliche Tipps, wie man das Opera-Problem beheben könnte und in welchen Versionen es überhaut nur auftritt, wäre ich dankbar.
Möglicherweise braucht Opera die Extraeinladung:
detail.location.href='voll.html';
Dann könnte man überlegen, ob man while() nicht einfach unter den Tisch fallen läßt. Sollte es an indexOf() liegen, währe auch substr() / substring() eine Alternative:
var x=detail.location.href
x=x.substr(x.length-9,9)
Das ganze ist schon super, simpel gelöst; keine Frage. Notfalls bleibt dann nur noch die Voll-HTML-Keule mit einem reellen Link, der zwei unterschiedliche Dokumente in parent läd, die ihrerseits den iframe mit einer unterschiedlichen src versorgen.
Gruß aus Berlin!
eddi