sichtbare Browserhöhe in MSIE
Saloon12yrd
- javascript
0 molily0 Gernot Back
Hi,
ich muss die Höhe des _sichtbaren_ Browserfensters ermitteln.
In Firefox und Opera funktioniert das wunderbar mit
document.body.offsetHeight
Im MSIE dachte ich wäre
document.body.offsetHeight
die richtige Variable, aber die liefert die _Gesamthöhe_ des Dokuments, also den gesamten scrollbaren Bereich, nicht nur das was aktuell sichtbar ist.
Die Varianten
document.body.clientHeight
und
document.all.[bodyId].offsetHeight
liefern beide das gleiche.
Kann mir jemand auf die Sprünge helfen?
Danke,
Sal-
Hallo,
ich muss die Höhe des _sichtbaren_ Browserfensters ermitteln.
Das Forumsarchiv bietet auch etwas zu dieser Frage.
In Firefox und Opera funktioniert das wunderbar mit
document.body.offsetHeight
Das glaube ich nicht, offsetHeight gibt im Opera und Firefox ebenfalls die Höhe des Dokuments aus, nicht die Höhe des aktuell sichtbaren Dokumentausschnittes. Meintest du vielleicht innerHeight?
Im MSIE dachte ich wäre
document.body.offsetHeight
die richtige Variable, aber die liefert die _Gesamthöhe_ des Dokuments, also den gesamten scrollbaren Bereich, nicht nur das was aktuell sichtbar ist.Die Varianten
document.body.clientHeight
und
document.all.[bodyId].offsetHeight
liefern beide das gleiche.
Ja, im standardkonformen Rendermodus des Internet Explorers 6.
Daher muss in diesem Fall document.documentElement.clientHeight verwendet werden. Im Quirks-Modus funktioniert document.body.clientHeight tadellos.
Ein fertiges Script findest du unter http://www.quirksmode.org/viewport/compatibility.html#link2.
Dort gibt es auch erschöpfende Tabellen, die die client- und offset-Eigenschaften untersuchen.
Mathias
Das hilft weiter, danke,
Sal-
Hallo Saloon12yrd,
das könntest du browserübergreifend mit einem unsichtbaren Lineal als erstes Kindelement des BODY-Elements machen, das sich auf 100% des inneren Fensterbereichs des Browsers erstreckt:
<head>
<title>Sichtbare Höhe auslesen</title>
<style type="text/css">
[code lang=css]
html, body {
height:100%;
margin:0;
padding:0;
}
</style>
</head>
<body onload="alert(document.getElementById('lineal').offsetHeight)
">
<div id="lineal" style="position:absolute;top:0;left:0;width:1px;height:100%;visibility:hidden
"> </div>
<div style="height:200%;
">Dieses Div-Element hat eine Höhe von 10.000 Pixeln aber keinen Einfluss auf die Anzeige der Höhe dieses sichtbaren inneren Fensterbereichs.</div>
</body>
</html>[/code]
Gruß Gernot