Newsgroup: it.comp.lang.javascript
Titolo: Dimensione spazio disponibile

Salve a tutti,
Come si fa a sapere quanto spazio c'e' disponibile nella pagina?
Mi spiego meglio: ho fatto uno script per aprire un div contenente un 
suggerimento o una legenda. Solo che quando mi trovo in prossimita' dei 
bordi, nasconde ovviamente una parte del div, fuori dalla visibilita' 
della finestra.
Per ovviare al problema ho quindi bisogno della dimensione della 
finestra dedicata all'html, ma window.clientHeight funzia solo con 
mozilla e netscape.
Come posso fare? Se serve passo il codice.
Ciao,
-- 
            Davide Gurgone
      web: 
http://www.gurgone.it/
mail: davidechiocciolinagurgonepuntoit

 mozilla e netscape.
document.documentElement.clientHeight
-- 
ZER0
~ The Tangent Universe collapsed 5996 days, 9 hours and 30 seconds ago.

> document.documentElement.clientHeight
Ma se la pagina e' piu' lunga della finestra, mi da l'altezza 
dell'elemento per intero.


 dell'elemento per intero.
Veramente no. O almeno, non dovrebbe. Su che browser l'hai testato?
-- 
ZER0
~ The Tangent Universe collapsed 5996 days, 9 hours, 12 minutes and 35 seconds ago.

> Veramente no. O almeno, non dovrebbe. Su che browser l'hai testato?
Solitamente uso firefox x lo sviluppo perche' ha la console javascript 
che mi dice la riga dell'errore.
Comunque ho trovato questo, nei vecchi post (non linciatemi, avevo 
sbagliato chiave di ricerca) :
   document.body.clientHeight
eccone il contesto, ne hanno fatto una function crossbrowser:
function dimensioni(){
var ll,aa,sa,sl;
     if(document.layers || (document.getElementById
         && (navigator.appName=="Netscape"))) {
       ll=window.innerWidth;
       aa=window.innerHeight;
     }
     else if(document.all || (document.getElementById
         && (navigator.appName=="Microsoft Internet Explorer"))) {
        ll=document.body.clientWidth;
        aa=document.body.clientHeight;
}
sl=screen.width;
sa=screen.height;
window.alert("larghezza video="+sl+"\naltezza video="+sa+"\nlarghezza 
utile="+ll+"\naltezza utile="+aa);
}
si trova su:
 
http://www.jsdir.com/faq/faq.asp?espandi=mostra&numero=54


 che mi dice la riga dell'errore.
Su firefox funziona perfettamente. Ti restituisce le dimensioni della
client area, e non l'altezza completa del documento, se è maggiore di
quest'ultima.
Per quanto riguarda il crossbrowsing, la riga che ti ho scritto funziona
sia per IE che per i browser Gecko based; ovviamente l'HTML deve avere un
corretto doctype.
Puoi vedere da te, in quel caso, che è document.body.clientHeight a
restituirti le dimensioni del documento, e non della client area:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
">
<head>
	<title>Untitled</title>
	<script type="text/javascript">
		window.onload=function(){
 
alert(document.documentElement.clientHeight+"\n"+document.body.clientHeight);
		}
	</script>
</head>
<body>
<br />
<br />
<br />
<!--
	etc..
-->
<br />
<br />
<br />
</body>
</html>
Se lavori in quirks mode e/o vuoi una retrocompatibilità con a NS4.x e IE4,
allora puoi utilizzare lo script che hai trovato su jsdir.
Ma quello script, in standard mode, non funziona (su IE.. Firefox mantiene
alcune caratteristiche storiche di NS).
-- 
ZER0
~ The Tangent Universe collapsed 5996 days, 9 hours, 46 minutes and 38 seconds ago.

 alcune caratteristiche storiche di NS).
Cosa significa quirks mode o standard mode?? Scusa la completa ignoranza!


 Cosa significa quirks mode o standard mode?? Scusa la completa ignoranza!
Leggi questa pagina, è in italiano e dovrebbe essere sufficientemente
esplicativa. A memoria, mi sembra la trascrizione di ciò che dice Zeldman
nel libro "Progettare il Web del futuro" (che a proposito, ti consiglio
vivamente):
http://www.web-garbage.com/dtd.php
-- 
ZER0
~ The Tangent Universe collapsed 5996 days, 10 hours, 38 minutes and 40 seconds ago.

 
http://www.web-garbage.com/dtd.php
Ok.. Dopo una lettura, posso dirti che sono certamente in quirks.
E che sto facendo parecchio lavoro per passare allo standard mode.
Piuttosto, qual'e' il modo piu' indolore per effettuare il passaggio???
E' qualche settimana che ce l'ho in testa e ho intenzione di farlo, mi 
piace vedere il logo con il visto su xhtml e su css2.
Grazie ancora,


 piace vedere il logo con il visto su xhtml e su css2.
Beh, direi che se lo fai solo per quello, allora il gioco non vale la
candela. :)
I vantaggi di avere del codice di markup valido, stanno ben oltre. Se
scritto a dovere, hai una completa separazione del contenuto dalla forma, e
di conseguenza una maggiore manutenibilità.
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 7 hours, 1 minutes and 29 seconds ago.