Hoi!
Wir verstehen uns falsch. Es geht nicht darum ein div sichtbar/unsichtbar zu machen sondern um die Eigenschaft overflow:auto; bei "sa" (Scrolling-Area) bzw. der präsiesen Angabe der Größe. Am Bildschirm ist nsa+sa genau die Höhe des Bildschirmes und der sa ist durch overflow:auto der Scrollbalken zugeordnet den normalerweise das Hauptfenster hätte. Klar soweit?
Klar. Ich war irgendwie nicht ganz bei der Sache.
Nun, die Eigenschaften sollen aber nur am Bildschirm applied werden. Deswegen media=screen. Für den Drucker sollen die CSS Eigenschaften einfach nicht zugewiesen werden was bedeutet dass sie normale DIVs sind und ganz NORMAL angezeigt werden.
Das gleiche: Du legst Styles (die Groessen) mit JS fest. (Warum eigentlich?) Und das nichtmal besonders valide. Ich sehe keine Massangaben und was steht beim ersten Aufruf von document.getElementById('nsa').offsetHeight darin? Ich rate: Ein Leersting.
Was passiert, wenn Du das zuweisen per JS nicht tust? Hast Du schon versucht Styles fuer print zu benutzen? Schonmal versucht mit Klassen zu arbeiten, die Du per JS zuweist, statt, die Styleangaben direkt zu bearbeiten?
"Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
- T. Pratchett