Navigator en JavaScript, pour identifier le navigateur de l'internaute

C'est un objet du navigateur disponibles depuis la version 1.0 de JavaScript, mais certaines propriétés et méthodes sont apparues ultérieurement.

Les propriétés et méthodes de navigator

Les propriétés standard sont reconnues par tous les navigateurs récents. Prendre garde aux majuscules.

appName
Le nom générique de classe du navigateur. Netscape pour Firefox.
appCodeName
Nom du navigateur.
appVersion
Plateforme (windows, etc.) et version du navigateur.
userAgent
Chaîne de caractères envoyée au serveur sur lequel on lit une page.
platform
Code de système d'exploitation, par exemple win32.

D'autres propriétés sont reconnues par Internet Explorer seul ou IE et Opera. Leur intérêt est donc très minime. Ce sont:

La propriété mimeTypes est reconnue par Mozilla uniquement et retourne dans un tableau les types mime supportés par le navigateur.

Les méthodes de navigator:

javaEnabled()
Retourne true si java est activé et si les applets peuvent fonctionner, false autrement.
taintEnabled() n'est pas standard, retourne vrai si l'option est activée auquel cas les script peuvent délivrer des informations sur le système avec un risque de sécurité.

Obtenir le numéro de version du navigateur

Le numéro de version commercial est dans appVersion sur certains navigateur, mais on utilisera plutôt userAgent qui le contient dans tous.

Il est dans le source de la démonstration qui suit. Ce n'est pas le numéro de version principal du navigateur, celui-ci suit la chaîne Firefox ou MSIE ou autre.

Il peut être extrait de userAgent en fonction du nom du navigateur, avec la méthode indexOf de l'objet String. On utilisera ces chaînes pour identifier le navigateur et obtenir le numéro:

Firefox/3.0.7
MSIE 7.0
Chrome/1.0.154.48
Opera/9.64
Version/4.0 Safari/528.16

Le script:

var ua = navigator.userAgent;

var x = ua.indexOf("MSIE");
var y = 4;
if (x == -1)
{
  x = ua.indexOf("Firefox");
  y = 7;
  if(x == -1)
  {
    if(x == -1)
    {
      x = ua.indexOf("Chrome");
      y = 6;
      if(x == -1)
      {
        x = ua.indexOf("Opera");
        y = 5;
        if(x == -1)
        {
          x = ua.indexOf("Safari");
          if( x != -1)
          {
            x = ua.indexOf("Version");
            y = 7;
          }
        }
      }
    }
  }
}

if(x != -1) 
{
  y ++;
  ua = ua.substring(x + y);
  x = ua.indexOf(" ");
  var x2 = ua.indexOf("(");
  if(x2 > 0 && x2 < x) x = x2;
    x2 = ua.indexOf(";");
  if(x2 > 0 && x2 < x) x = x2;
    if (x == -1) document.write("Error");

  var v = ua.substring(0, x);
 document.write("Version: " + v);
}

Ce script est contenu dans la démo et peut être réutilisé dans toute page Web.

Démonstrations

Démonstration: Prendre le numéro de version dans userAgent

Code ci-dessus. Voir manuel en lien externe.

Test de l'objet navigator dans les navigateurs

Les propriétés de navigator et leurs valeurs, quelque soit la source et le version de votre navigateur, s'affichent ci-dessous et permettent de vérifier la compatibilité de l'objet.


Code pour les propriétés standards:

document.write("navigator.appName: " + navigator.appName);
document.write("navigator.appCodeName: " + navigator.appCodeName);
document.write("navigator.appVersion: " + navigator.appVersion);
document.write("navigator.platform: " + navigator.platform);
document.write("navigator.cookieEnabled: " + navigator.cookieEnabled);
document.write("navigator.userAgent: " + navigator.userAgent);
document.write("navigator.javaEnabled(): " + navigator.javaEnabled());

Références

© 2009-2012 Xul.fr