Un browser è identificato dal suo nome (Firefox, Internet Explorer, Safari e così via) combinato con il numero di versione. Il codice JavaScript deve determinare entrambi questi elementi. Per svolgere questa attività si può procedere in più modi. In generale la riga
var browser_name = navigator.appName;
determina chi ha prodotto il browser. Se l'utente ha un browser Netscape, la variabile browser_name sarà impostata alla stringa "Netscape". Se si tratta invece di un browser Microsoft Internet Explorer, browser_name sarà impostata a "Microsoft Internet Explorer". Tutti i browser abilitati JavaScript devono avere la variabile navigator.appName. Tuttavia molti di questi restituiscono come risultato la stringa "Mozilla" pertanto l'identificazione del browser non sarà mai accurata.
Altra variabile utile allo scopo è navigator.appVersion. Sfortunatamente non restituisce soltanto un numero ma una stringa a volte incomprensibile che varia da un browser all'altro. Anche in questo caso l'informazione ottenuta risulta essere tutt'altro che accurata.
JavaScript ha un'altra variabile che contiene informazioni sul browser in uso, navigator.userAgent. Questa variabile identifica sia il produttore del browser sia la versione. Come con navigator.appVersion, tuttavia, la formattazione della stringa varia da un browser all'altro. Poiché le stringhe navigator.userAgent sono differenti fra loro, non c'è un modo semplice per estrarre le informazioni desiderate.
Il codice ora riportato permette di stampare in una pagina web il contenuto delle tre variabili fin ora descritte. Salvare il codice in un file con estensione htm o html per poi leggerlo con differenti browser web notando la differente valorizzazione che le variabili:
<html>
<head>
<title>Variabili JavaScript per determinare il browser utilizzto</title>
<script type = "text/javascript" src = "brwsniff.js"> </script>
</head>
<body>
<script type = "text/javascript">
<!-- hide me from older browsers
var browser_name = navigator.appName;
var browser_version = navigator.appVersion;
var browser_agent = navigator.userAgent;
document.write ("navigator.appName = " + browser_name + "<br/>");
document.write ("navigator.appVersion = " + browser_version + "<br/>");
document.write ("navigator.userAgent = " + browser_agent + "<br/>");
// show me -->
</script>
</body>
</html>
Fortunatamente qualcuno ha già scritto i cosiddetti browser sniffer ovvero porzioni di codice JavaScript che svolgono tutto il lavoro di identificazione del browser. Uno di questi è jsbrwsniff scaricabile dal sito degli sviluppatori http://jsbrwsniff.sourceforge.net/. Per utilizzarlo inserire il file brwsniff.js nella stessa cartella della pagina web contenente il codice JavaScript, quindi aggiungere questa riga nella sua intestazione:
<script type = "text/javascript" src = "brwsniff.js"></script>
Questa riga dice a JavaScript di aggiungere il contenuto del fine denominato brwsniff.js alla pagina web. Un esempio di pagina web potrebbe essere:
<html>
<head>
<title>Il browser che stai utilizzando</title>
<script type = "text/javascript" src = "brwsniff.js"> </script>
</head>
<body>
<script type = "text/javascript">
<!-- hide me from older browsers
var browser_info = getBrowser();
var browser_name = browser_info[0];
var browser_version = browser_info[1];
document.write ("Stai utilizzando " + browser_name + " versione " + browser_version);
// show me -->
</script>
</body>
</html>
Al momento in cui viene pubblicato questo articolo, jsbrwsniff non è in grado di riconoscere il browser web di Google Chrome.
Nessun commento:
Posta un commento