2012-12-22 13 views
7

document.body.clientHeight nie wraca poprawne wartości (w poniższym kodem powrotu 0 onload i 20 onresize)document.body.clientHeight nie działa? (JavaScript)

<html> 
<head> 
<title>Untitled</title> 
<script type="text/javascript" > 
function height1() 
{ 
    document.getElementById("viewheight").innerHTML = document.body.clientHeight; 
} 
</script> 
</head> 

<body onload="height1();" onresize="height1();"> 
<span id="viewheight"></span> 
</body> 
</html> 

żadnych komentarzy ..... plz help!

Odpowiedz

13

Spróbuj z document.getElementById("viewheight").innerHTML = window.innerHeight;

Zachowanie skryptu jest całkowicie poprawne. Na początku wysokość twojego ciała jest naprawdę zerowa (wysokość ciała jest wysokością dokumentu). Ponieważ nic nie jest pokazane, wysokość ma zero. Po zmianie rozmiaru drukowanych "0" rozpiętości powyżej 20 pikseli, więc wynik pozostanie na poziomie 20 pikseli.

Jeśli chcesz uzyskać maksymalną wysokość okna lub organu można użyć Math.max(window.innerHeight, document.body.clientHeight)

+0

może niektóre stosowane css rozciągnięte ciało w przykładowej książki do innego rozmiaru, lub nie więcej treści na stronie – bukart

+0

jest 'document.body.clientHeight' przestarzałe? –

+0

jak dotąd wiem, że to nie jest – bukart

-1

.clientHeight daje nam wartość całkowita tylko. Ale tutaj brakuje rozmiaru skali, dlatego nie działa poprawnie po prostu dodaj + "px" tuż po document.body.clientHeight.

<script> 
    function height1() { 
     document.getElementById("viewheight").innerHTML = document.body.clientHeight + "px"; 
    } 
</script>