Dall'articolo L'arte dello sniffing: come riconoscere i browser mi sono ricavato il seguente codice
Codice PHP:
if((ind = navigator.appVersion.indexOf("MSIE")) > -1 &&
navigator.userAgent.indexOf("Opera") == -1) {
/*--------------------------------------------------
il browser è Explorer
e la variabile ind contiene l'indice di "MSIE" nella stringa appVersion
a questo punto possiamo recuperare la versione in vari modi:
1) recuperando il valore intero della versione
eliminando la parte iniziale della stringa, incluso "MSIE " (5 caratteri)
2) recuperando la versione completa, sotto forma di valore decimale
----------------------------------------------------*/
/* 1 */ var versione1 = parseInt(navigator.appVersion.substr(ind+5));
/* 2 */ var versione2 = parseFloat(navigator.appVersion.substr(ind+5));
document.write("Explorer "+versione1);
}
if(navigator.appName.indexOf("Netscape")>-1) {
/*---------------------------------------------
il browser è Netscape
anche in questo caso abbiamo le due possibilità:
-----------------------------------------------*/
/* 1 */ var versione1 = parseInt(navigator.appVersion);
/* 2 */ var versione2 = parseFloat(navigator.appVersion);
document.write("Netscape "+versione1);
}
if((ind = navigator.userAgent.indexOf("Opera")) > -1) {
/*---------------------------------------------
il browser è Opera
a questo punto ind contiene l'indice della stringa "Opera"
che prendiamo come nuovo punto di partenza per la ricerca
della versione del browser:
-----------------------------------------------*/
punto = navigator.userAgent.indexOf(".",ind);
/* 1 */ var versione1 = parseInt(navigator.userAgent.substr(punto-1));
/* 2 */ var versione2 = parseFloat(navigator.userAgent.substr(punto-1));
document.write("Opera "+versione1);
}
che come è evidente rintraccia i browser Netscape, Explorer e Opera e la relativa versione.
Vorrei potenziare lo script in modo da distinguere Netscape da Mozilla, da distinguere Safari ed il recente Chrome.
Quanto di ciò sia possibile fare non saprei, accetto ogni suggerimento.