Hallo,
das scheint mir noch ziemlich »gewurschtelt«, deshalb hatte ich nochmal nachgefragt. Was mir nicht gefällt:
- Man braucht einen bestimmten Rendermodus.
- Man muss irgendwelche Elemente einfügen.
Erstmal muss man natürlich beachten, dass body nicht den Viewport ausfüllt und zudem in vielen Browser standardmäßig margin hat. Damit ist ein bloßes body.offsetHeight logischerweise ungenau. Also eher documentElement oder das margin/padding bewusst setzen.
Die simple Lösung - Strict Mode, offsetHeight, body { margin:0; } für die Dokumente im iframe, kein Klonen, style.height, kein Setzen von scroll oder scrolling - funktioniert bei mir im IE 6, Firefox 2, Konqueror 3.5.8 und Opera 9.26.
Was du beschreibst, konnte ich so nicht beobachten. Kann aber durchaus sein, dass manche Browser noch Probleme machen. Dann würde ich eher Workarounds suchen, die keine Vorannahmen wie Rendermodus oder bestimmte Konfiguration der Dokumente im iframe machen.
Mathias