Hallo,
danke für die wichtigen Anmerkungen!
var height = document.body.clientHeight || window.innerHeight;
So einfach ist das leider nicht. clientHeight ist uneindeutig je nach Rendermodus, liefert entweder die Viewport-Höhe (das, was gerade vom Dokument sichtbar ist) oder die Dokument-Höhe (das gesamte Dokument inklusive dem, was gerade durch Scrolling unsichtbar ist). Auf jeden Fall sollte man zuerst window.innerHeight abfragen, dann document.documentElement.clientHeight, erst dann document.body.clientHeight.
Siehe z.B. http://www.howtocreate.co.uk/tutorials/javascript/browserwindow.
Mathias