Newsgroup: it.comp.lang.javascript
Titolo: Risoluzione e browser

Ciao a tutti,
in un sito utilizzo questo script per rilevare la risoluzione ma ho scoperto
che con mozilla NON ha assolutamente alcun effetto!
Come mai?
come posso risolvere?
GRAZIE per i consigli.
<script  language="javascript">
<!--
var s_width ='';
var s_height ='';
s_width=screen.width
s_height=screen.height
if (s_width == "640"){
location.href="frames640.htm";
}
if (s_width == "800"){
location.href="frames640.htm";
}
if (s_width == "1024"){
location.href="frames.htm";
}
if (s_width == "1152"){
location.href="frames1200.htm";
}
if (s_width == "1280"){
location.href="frames1200.htm";
}
//-->
</script>

 Come mai?
Che errore ti dà?
L'oggetto screen dovrebbe esistere anche in mozilla
(
http://www.mozilla.org/docs/dom/domref/dom_window_ref91.html#1019963
)
(un alert dopo aver rilevato la risoluzione funziona?)
Magari è quel location, senza il document non so se lo considera (ricordati
sempre che IE digerisce anche i sassi):
document.location.href='xxxx';
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.
--

 document.location.href='xxxx';
location e' un oggetto (anche) di window, quindi la sintassi usata e'
corretta dato che window e' implicito.
-- 
ZER0://coder.gfxer.web-designer/
~ Deformazione professionale č:
Quando in ascensore senti la ragazza accanto che tira fuori il cellulare,
e ti volti per capire se e' un modello sul quale puoi sviluppare in J2ME.
on air ~ "Avril Lavigne - Im With You"

 corretta dato che window e' implicito.
E allora perché non va quel codice secondo te?
ho visto sul sito di mozilla, esiste l'oggetto window.screen ed esistono le
relative proprietà width-height...
Magari anziché 1024 restituisce 1024px ?


 </script>
E vedi un po' che ti stampa.
In ogni caso, width e height sono due proprieta' *numeriche* dell'oggetto
screen, quindi devi trattarle come numeri. JS fa cmq un cast implicito, ma
e' meglio andare sul sicuro. Cmq puoi comprimere il tuo codice in questa
forma:
<script type="text/javascript">
	var suffix="",w=screen.width;
	if (w<1024)
		suffix="640";
	else if(w>1152)
		suffix="1200";
 
	location.href="frames"+suffix+".htm";
</script>
Anche se questo tipo di approccio, ovvero avere diverse pagine per diverse
risoluzioni, e' sconsigliato.
-- 
ZER0://coder.gfxer.web-designer/
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini hanno
fumato una sigaretta.


 Magari anziché 1024 restituisce 1024px ?
Nono. Sono proprieta' numeriche. Magari ha una versione di Mozilla bacata;
oppure che ha problemi nel casting; o piu' semplicemente ha JS
disabilitato; o forse l'errore e' altrove e non ha guardato la JS console.
-- 
ZER0://coder.gfxer.web-designer/
~ Se potete leggere questo, la mia donna e' caduta.
(Letta sul retro di una maglietta di un motociclista)


Allora il JS e' abilitato ma la cosa piu' incredibile e' che nonostante la
risoluzione si a 800X600 su mozilla la da 1024x768!!!!!!!!!!!!!!!!!!!
Parola di alert!
come si spiega?



Verifica che effettivamente la risoluzione sia 800x600, ed esegui lo stesso
script su diversi browser.
Se tutti ti rispondono 800x600 e solo mozilla 1024x768; hai probabilmente
una versione bacata del suddetto.
 
-- 
ZER0://coder.gfxer.web-designer/
~ Il computer e' una macchina progettata per velocizzare e automatizzare
gli errori.

Ho un browser BACATISSIMO!
le ho provate tutte e NON funzia...
reinstallero tutto..
GRAZIE comunque