2012-12-22 16 views
7

document.body.clientHeight non restituendo valori corretti (in cambio codice qui sotto 0 onload e 20 onResize)document.body.clientHeight non funziona? (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> 

eventuali commenti ..... plz help!

risposta

13

provare con document.getElementById("viewheight").innerHTML = window.innerHeight;

Il comportamento dello script è del tutto corretto. All'inizio l'altezza del tuo corpo è veramente zero (l'altezza del corpo è l'altezza del documento). Perché non viene mostrato nulla, l'altezza risulta zero. Dopo aver ridimensionato lo "0" stampato su 20px, il risultato resterà a 20px.

Se si desidera ottenere la massima altezza della finestra o il corpo si potrebbe usare Math.max(window.innerHeight, document.body.clientHeight)

+0

magari un po 'css applicato disteso il corpo nel tuo esempio libro a un'altra dimensione, o non c'è più contenuti nella pagina – bukart

+0

è 'document.body.clientHeight' deprecato? –

+0

finora so che non è – bukart

-1

.clientHeight ci dà solo un valore intero. Ma qui manca la dimensione in scala della dimensione, ecco perché non funziona correttamente, basta aggiungere + "px" subito dopo lo document.body.clientHeight.

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