Scoprire la risoluzione del browser dei visitatori
> Scritto da Matteo Gentile il giorno 12/11/2002

  
Si ringrazia Matteo Gentile per la concessione del materiale pubblicato in questo articolo.

Spesso per creare una pagina può essere utile conoscere la risoluzione video dei nostri visitatori, in modo (ad esempio) di modificare le larghezze di alcue tabelle.
Per fare ciò bisogna andare a interrogare il browser dell'utente con degli script lato client in Javascript.
Purtroppo però i vari browser nelle varie versioni utlizzano delle variabili diverse.
Noi vedremo in questo esempio il codice per ricavare la risoluzione video dai browser più diffusi, e cioè:

  • Internet Explorer 4 e successive versioni
  • Internet Explorer 3
  • Netscape 4
  • Netscape 3
L'esempio riconosce il browser andando a leggere la ServerVariable "HTTP_USER_AGENT".
In seguito il nome del browser viene trasformato in minuscolo (grazie alla funzione LCase) per semplificare i confronti.
Grazie alla stringa recuperata riconosco il browser e la versione (grazie alla funzione Instr).
Poi lo script legge la risoluzione video e la scrive in una Message Box.
Le varie risoluzioni sono poi state leggermente "aggiustate" per avere i numeri classici che conosciamo.
Infatti, non prende proprio la risoluzione video, ma la grandezza della finestra del browser. Se il browser non è a pieno schermo si ottengono dei numeri minori.
Ecco il codice dell'esempio:
<% 
A = LCase(Request.ServerVariables("HTTP_USER_AGENT"))
if instr(A,"msie 5")>0 or instr(A,"msie 4")>0 or instr(A,"zilla/4")>0 then
%>
<script language="JavaScript">
var w = document.body.clientWidth;
var h = document.body.clientHeight;
w=w+21
h=h+199
alert(w + " * " + h)
</script>
<%
elseif instr(A,"msie 3")>0 then
a = request("http_ua_pixels")
if instr(a,"x")>0 then
a = split(a,"x")
w=clng(a(0))+21
end if
if instr(b,"y")>0 then
b = split(b,"y")
h=clng(b(0))+199
end if
alert(w + " * " + h)
elseif instr(A,"zilla/3")>0 then
%>
<script language="javascript">
var Sizer=java.awt.Toolkit.getDefaultToolkit();
var ScrSize=Sizer.getScreenSize();
var ScrW=ScrSize.width;
var ScrH=ScrSize.heigth;
w=ScrW+21
h=ScrH+199
alert (w + " * " + h)
</script>
<%
else
alert("Risoluzione non trovata")
end if
%>


--------------------------------------------------------------------------------------------
AZPoint.net - http://www.azpoint.net
Vietata ogni forma di duplicazione