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
  1. if (typeof( window.innerWidth ) == 'number' ) {  
  2.   //Non-IE  
  3.   myWidth = window.innerWidth;  
  4.   myHeight = window.innerHeight;  
  5. else if (document.documentElement &&  
  6.     (document.documentElement.clientWidth || document.documentElement.clientHeight)) {  
  7.   //IE 6+ in 'standards compliant mode'  
  8.   myWidth = document.documentElement.clientWidth;  
  9.   myHeight = document.documentElement.clientHeight;  
  10. else if (document.body &&   
  11.     (document.body.clientWidth || document.body.clientHeight)) {  
  12.   //IE 4 compatible  
  13.   myWidth = document.body.clientWidth;  
  14.   myHeight = document.body.clientHeight;  
  15. }  
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:
  1. 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