js Probleme mit IE (aktuelle Fensterhoehe)
Mario
- javascript
Hi,
mal wieder ein Problem mit dem Internet Explorer. Thema: aktuelle Fensterhoehe.
Da IE als einziger Browser window.innerWidth und window.innerHeight, verwende ich bei IE eben document.body.offsetWidth und document.body.offsetHeight.
document.body.offsetWidth funktioniert wunderbar, document.body.offsetHeight liefert allerdings immer ein konstantes Ergebnis von 42. Das Fenster ist aber SICHER hoeher (Fullscreen). Da es so konstant ist, nehme ich an, dass dies die Hoehe eines Elementes in der Seite ist, aber welche?
Habs auch schon so versucht: window.document.getElementById("body").offsetHeight, was allerdings das selbe Ergebnis liefert.
Hat irgendjemand eine Ahnung wie man den kaputten Internet Explorer ueberreden kann das richtige Ergebnis zu liefern?
Danke!
hi,
document.body.offsetWidth funktioniert wunderbar, document.body.offsetHeight liefert allerdings immer ein konstantes Ergebnis von 42. Das Fenster ist aber SICHER hoeher (Fullscreen).
Was hat die Höhe des body-Elementes mit der Fensterhöhe zu tun?
Da es so konstant ist, nehme ich an, dass dies die Hoehe eines Elementes in der Seite ist, aber welche?
Die von body vermutlich - denn die fragst du doch ab, oder?
gruß,
wahsaga
hi,
document.body.offsetWidth funktioniert wunderbar, document.body.offsetHeight liefert allerdings immer ein konstantes Ergebnis von 42. Das Fenster ist aber SICHER hoeher (Fullscreen).
Was hat die Höhe des body-Elementes mit der Fensterhöhe zu tun?
Da es so konstant ist, nehme ich an, dass dies die Hoehe eines Elementes in der Seite ist, aber welche?
Die von body vermutlich - denn die fragst du doch ab, oder?
jaja. genau das war das problem. ich dachte body = window. ist dem aber wohl nicht so ;-/
anstatt body auf 100% hoehe zu setzen, gibts da noch ne andere alternative?
gruß,
wahsaga
anstatt body auf 100% hoehe zu setzen, gibts da noch ne andere alternative?
sowas "window.offsetHeight" geht ja im vergleich zu sowas: "window.innerHeight" nicht!
hi,
anstatt body auf 100% hoehe zu setzen, gibts da noch ne andere alternative?
sowas "window.offsetHeight" geht ja im vergleich zu sowas: "window.innerHeight" nicht!
http://www.quirksmode.org/viewport/compatibility.html könnte weiterhelfen.
gruß,
wahsaga
oki, problem gefunden.
im body hab ich nur mit weiteren divs gearbeitet...obwohl die Seite "voll" war, war der body tatsaechlich nur 42 pixel hoch, die anderen divs hab ich mit css platziert.
die Loesung: <body style="height:100%"><div>....
in den 100% liegt die loesung!
nun noch die Loesung als funktion
// returns INNER width of window
function getWindowWidth() {
// if innerWidth is unknown [Internet Explorer] use offsetWidth
if (window.innerWidth) {
return window.innerWidth;
} else if (document.body && document.body.offsetWidth) {
// important: for IE set body width = 100%
document.getElementsByTagName("body")[0].style.setAttribute("width", "100%", "false");
return document.body.offsetWidth;
} else {
return 0;
}
}
// returns INNER height of window
function getWindowHeight() {
//if innerHeight is unknown [Internet Explorer] use offsetHeight
if (window.innerHeight) {
return window.innerHeight;
} else if (document.body && document.body.offsetHeight) {
// important: for IE set body height = 100%
document.getElementsByTagName("body")[0].style.setAttribute("height", "100%", "false");
return document.body.offsetHeight;
} else {
return 0;
}
}
Hallo,
nun noch die Loesung als funktion
Wie gesagt http://www.quirksmode.org/viewport/compatibility.html#link2.
// returns INNER width of window
document.getElementsByTagName("body")[0].style.setAttribute("width", "100%", "false");
Unnötig kompliziert.
Mathias