2012-12-22 20 views
7

document.body.clientHeight Rückkehr nicht korrekte Werte (in folgendem Code return 0 onload und 20 onresize)document.body.clientHöhe funktioniert nicht? (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> 

Alle Kommentare ..... plz help!

Antwort

13

Versuchen Sie es mit document.getElementById("viewheight").innerHTML = window.innerHeight;

Das Verhalten des Skriptes ist völlig korrekt. Am Anfang ist die Höhe Ihres Körpers wirklich Null (Körperhöhe ist die Höhe des Dokuments). Da nichts angezeigt wird, ergibt sich die Höhe mit Null. Nach der Größenanpassung der gedruckten "0" erstreckt sich über 20px, so dass das Ergebnis bei 20px bleibt.

Wenn Sie die maximale Höhe des Fensters oder den Körper bekommen könnten Sie Math.max(window.innerHeight, document.body.clientHeight)

+0

vielleicht einige angelegt CSS gestreckt, um den Körper in Ihrem Beispiel Buch auf eine andere Größe, oder es gibt mehr Inhalt auf der Seite – bukart

+0

Ist 'document.body.clientHeight' veraltet? –

+0

soweit ich weiß es ist nicht – bukart

-1

.clientHeight gibt uns einen Wert Integer nur. Aber hier Skala-Typ der Größe fehlt, deshalb funktioniert es nicht richtig, fügen Sie einfach + "px" kurz nach document.body.clientHeight.

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