| Exemples
Les scripts pour connaître le browser de
l'utilisateur sont nombreux et dépendent un peu de l'inspiration
de l'auteur. En voici quelques uns que nous détaillons.
Vous remarquerez que l'on utilise souvent indexOf()
car la longueur du string retourné varie d'une version à
l'autre.
Pour des instructions sous Netscape 3 ou 4
var nm=navigator.appName+navigator.appVersion;
if(nm.indexOf("Netscape3.")>-1||nm.indexOf("Netscape4.")>-1)
...
Ici l'auteur assemble dans la variable nm les informations retournées
par appName et appVersion. Avec indexOf, on voit si Netscape3 ou Netscape4
est inclus dans nm. Si oui, sa position sera 0 ou supérieur. Si
la référence n'est pas trouvée, la valeur retournée
sera -1.
Pour savoir si le browser tourne sous Windows
On peut employer if (navigator.appVersion.IndexOf('Win')>-1)
{ ...
Avec indexOf, on teste la position du string partiel Win dans le string
retourné par AppVersion. Si Win est trouvé cette position
sera notée de 0 à une position déterminée et
donc supérieure à -1. Si Win n'est pas touvé la position
retournée sera de -1 et la condition ne sera pas remplie.
Pour savoir si le browser est Explorer 4.0
var ms = navigator.appVersion.indexOf("MSIE")
ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5,
ms+6)) >= 4)
Avec indexOf, on note sous la variable ms, la position de MSIE dans le
string retourné par app.Version. Si MSIE n'est pas trouvé
(donc Netscape), ms vaudra -1.
On donne à ie4 la valeur true, si d'abord ms est supérieur
à 0 (de la famille Microsoft) et si le caractère 4 ou supérieur
est bien trouvé en position ms+5 du string retorné par app.version.
Pour distinguer du Javascript 1.0 et du 1.1
Seuls Netscape 2.0 et Explorer 3.0 supportent le Javascript commun,
appelé depuis Javascript 1.0. Seuls ces deux browsers ont dans leur
userAgent, le chiffre 2.0 (vou pouvez vérifier...).
Ainsi, un test pour déterminer si 2. est bien présent dans
le string retourné par userAgent fera l'affaire. Le test devient
:
var test=navigator.useAgent;
if(test.indesOf("2.") != -1) {...
|