ugrás a tartalomhoz

document.body.clientHeight nem úgy működik mint a window.innerHeight

haho · 2010. Szep. 2. (Cs), 11.54
Mindenhol azt találtam, hogy ami Firefoxban window.innerHeight, az InternetExplorerben document.body.clientHeight.
Csakhogy Firefoxban az innerHeight a böngészőablak teljes belső magasságát adja meg, míg InternetExplorerben a clientHeight a body méretét, ami nem akkora mint a böngészőablak belső magassága, hanem mindig akkora amekkorára a táblázatom kinyúlik éppen.

Nincs InternetExplorerben is egy olyan lehetőség, ami a böngészőablak belső magasságát adja meg? Vagy ezt nem lehet ott megoldani?
Köszi
 
1

clientHeight

Poetro · 2010. Szep. 2. (Cs), 12.42

  if (typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if (document.documentElement &&
      (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if (document.body && 
      (document.body.clientWidth || document.body.clientHeight)) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
hanem mindig akkora amekkorára a táblázatom kinyúlik éppen

Nem tudom, neked milyen táblázatod van, de ez biztosan nem igaz.
4

Ezer köszönet....

haho · 2010. Szep. 2. (Cs), 23.18
Köszi Poetro, a document.documentElement.clientHeight; tényleg ugyanolyan jól működik Internet Explorer 8 alatt mint a 3.6 és a 4.0 BETA Firefoxban a window.innerHeight;.
Nagyon köszönöm a segítséget!

Egyébként nem a táblázat a lényeg, hanem, hogy meddig ér az adott tartalom az oldalon: Internet Explorer 8 alatt a document.body.clientHeight; azt az értéket írja ki, ahol a weblap legalján található elem alja található. Tehát ha pl. semmi más nincs az oldalon csak egy táblám vagy egy div-em, akkor a tábla magasságát adja vissza. De úgy van megírva nekem a script, hogy ha átméretezed ezeket a tulajdonságokat (pl. Firefox alatt a böngészőablakot) az érték automatikusan változik és nekem a táblám egyik cellája ki-be nyitható javascripttel és ha becsukom, akkor Explorer alatt a document.body.clientHeight; érték azonnal felveszi azt az értéket, ami becsukott állapotban a táblám magassága.

Illetve kipróbáltam: Internet Explorer 8 alatt a document.documentElement.offsetHeight; 4 pixelt tévedett. Tehát a böngésző valódi belső magasságát lekértem a document.documentElement.clientHeight;-al és tényleg jó adatot adott, az offsetHeight; viszont mindig 4pixellel többet.

Köszönöm a hozzászólásokat és a segítséget!
2

Nem vagyok biztos, de

ironwill · 2010. Szep. 2. (Cs), 19.34
Nem vagyok biztos, de szerintem ez is működhet:
alert(document.getElementsByTagName("html")[0].offsetHeight);
3

document.documentElement.offsetHeight

Poetro · 2010. Szep. 2. (Cs), 21.31
document.documentElement.offsetHeight tényleg működhet