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) {...
|