Les particularités de l'objet navigator
L'objet navigator est un objet qui permet de récupérer des informations
sur le navigateur qu'utilise le visiteur. Cela paraît totalement inutile à première
vue, toutefois, comme vous le savez sûrement, il existe de grandes différences entre différentes
versions d'un même navigateur (intègration de nouvelles technologies), ainsi qu'entre
des navigateurs de types différents (les deux antagonistes sont généralement Netscape Navigator ©
et Microsoft Internet Explorer qui d'une part n'interprètent pas toutes les balises HTML et les instructions Javascript
de la même manière, et qui, d'autre part, possède parfois des balises HTML propriètaires, c'est-à-dire
qui leur sont propres...).
Toutes les propriétés de l'objet navigator sont en lecture seule, elles servent
uniquement à récupérer des informations et non à les modifier (il serait idiot de
vouloir modifier les informations d'un navigateur...).
Les propriétés de l'objet navigator
Les propriétés de l'objet navigator sont peu nombreuses, elles permettent
en fait de retourner des portions de l'information sur votre navigateur qui est en fait une chaîne de
caractères. Etant donné que ces propriétés sont statiques, il est nécessaires
de les faire précéder par navigator :
navigator.propriete
Dans le tableau suivant, la colonne de droite donne le résultat fourni par la propriété pour votre
navigateur :
<script language="Javascript">
<!--
document.write(navigator.propriete);
// -->
</script>
| Propriété |
Description |
Pour votre navigateur |
| appCodeName | retourne le code du navigateur. Un navigateur
a généralement pour nom de code Mozilla, le moteur utilisé par
la plupart des navigateurs (internet explorer, netscape, mais aussi beaucoup de navigateurs sous Unix...).
Cette valeur sera différente si le navigateur du client est pas basé sur un autre moteur (e.g. Opera, ...). |
Mozilla |
| appName | retourne le nom du navigateur
(la plupart du temps la marque). Cette propriété est utile pour différencier les navigateurs de
Netscape et de Microsoft). |
Netscape |
| appVersion | retourne la version du navigateur.
Cette propriété prend la forme suivante :
Numéro de version( plateforme (système d'exploitation), nationalité)
Elle est utile pour connaître le système d'exploitation de l'utilisateur, mais surtout,
associée avec la propriété navigator.appName elle permet de connaître
les fonctionnlités que supporte le navigateur de votre visiteur. |
5.0 (Windows; fr) |
| language | renvoie une chaîne de caractère
donnant la langue utilisée par la navigateur du client. Cette propriété
n'est comprise que par les navigateurs supportant les versions 1.2 et supérieures de Javascript. |
fr |
| mimeTypes | Cette propriété
renvoie un tableau répertoriant les types MIME supportés par le navigateur,
c'est-à-dire les types de fichiers enregistrés. |
* application/x-director audio/3gpp2 image/x-macpaint image/pict image/x-pict image/png image/x-png image/x-quicktime image/x-sgi image/x-targa image/tiff image/x-tiff video/mpeg audio/mpeg audio/x-mpeg video/3gpp audio/3gpp video/mp4 audio/mp4 audio/x-m4a audio/x-m4p audio/x-m4b video/sd-video video/3gpp2 audio/vnd.qcelp audio/AMR audio/x-gsm video/x-mpeg audio/aiff audio/x-aiff audio/basic audio/mid audio/x-midi audio/midi application/sdp application/x-sdp application/x-rtsp video/quicktime video/flc audio/x-wav audio/wav application/npruntime-scriptable-plugin;DeploymentToolkit application/ganymedenet-detector application/x-zylomgamesplayer;version=2.0.0.0 application/pdf application/vnd.fdf application/vnd.adobe.xfdf application/vnd.adobe.xdp+xml application/vnd.adobe.xfd+xml application/x-mc-activator application/x-shockwave-flash application/futuresplash application/x-hardwaredetection-plugin application/x-vnd.yahoo.applicationState application/x-mtx application/npruntime-scriptable-plugin;DeploymentToolkit application/x-java-applet application/x-java-bean application/x-java-vm application/x-java-applet;version=1.1.1 application/x-java-bean;version=1.1.1 application/x-java-applet;version=1.1 application/x-java-bean;version=1.1 application/x-java-applet;version=1.2 application/x-java-bean;version=1.2 application/x-java-applet;version=1.1.3 application/x-java-bean;version=1.1.3 application/x-java-applet;version=1.1.2 application/x-java-bean;version=1.1.2 application/x-java-applet;version=1.3 application/x-java-bean;version=1.3 application/x-java-applet;version=1.2.2 application/x-java-bean;version=1.2.2 application/x-java-applet;version=1.2.1 application/x-java-bean;version=1.2.1 application/x-java-applet;version=1.3.1 application/x-java-bean;version=1.3.1 application/x-java-applet;version=1.4 application/x-java-bean;version=1.4 application/x-java-applet;version=1.4.1 application/x-java-bean;version=1.4.1 application/x-java-applet;version=1.4.2 application/x-java-bean;version=1.4.2 application/x-java-applet;version=1.5 application/x-java-bean;version=1.5 application/x-java-applet;version=1.6 application/x-java-bean;version=1.6 application/x-java-applet;jpi-version=1.6.0_11 application/x-java-bean;jpi-version=1.6.0_11 application/asx video/x-ms-asf-plugin application/x-mplayer2 video/x-ms-asf video/x-ms-wm audio/x-ms-wma audio/x-ms-wax video/x-ms-wmv video/x-ms-wvx application/x-drm-v2 application/x-drm |
| platform | Cette propriété
renvoie une chaîne de caractère indiquant
la plateforme sur laquelle le navigateur fonctionne, c'est-à-dire
le système d'exploitation du client.
Cette propriété
n'est comprise que par les navigateurs supportant les versions 1.2 et supérieures de Javascript. |
Win32 |
| plugins | Cette propriété
renvoie un tableau contenant la liste des plugins installés
sur la machine cliente. |
npnul32.dll np32dsw.dll npqtplugin6.dll npqtplugin7.dll npqtplugin4.dll npqtplugin5.dll npqtplugin3.dll npqtplugin2.dll npqtplugin.dll npdeploytk.dll npganymedenet.dll npzylomgamesplayer.dll nppdf32.dll NPMGWRAP.DLL NPSWF32.dll nphardwaredetection.dll npYState.dll npViewpoint.dll npdeploytk.dll npjp2.dll npdsplay.dll npdrmv2.dll npwmsdrm.dll |
| userAgent | retourne la chaîne de caractère
qui comprend toutes les informations sur le navigateur de client.
Les propriétés ci-dessus offrent un moyen pratique
de récupérer une partie de cette information. |
Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 |
Les méthodes de l'objet navigator
Les méthodes de l'objet navigator permettent d'effectuer certaines opérations concernant le navigateur
du client. Dans la mesure où il s'agit de méthodes statiques, il est indispensable de les faire précéder
par navigator.
| Méthode |
Description |
Pour votre navigateur |
| javaEnabled() |
Cette méthode permet de vérifier si le navigateur du client est
configuré pour exécuter des applets Java. |
true |
| plugins.refresh() | La méthode refresh()
de la propriété plugin permet de rafraîchir la liste des plugins
installés sur le poste client. | |
| preference("preference",valeur) | Cette méthode supportée
à partir de la version 1.2 de Javascript permet à un script signé
de redéfinir les préférences du navigateur. Le script doit ainsi
obtenir les privilèges suffisants pour pouvoir effectuer ces actions. | |
| SavePreferences() | Cette méthode supportée
à partir de la version 1.2 de Javascript permet de sauvegarder les
modifications apportées aux préférences du navigateur du client. | |
| taintEnabled() | Cette méthode permet de vérifier que
la protection des données a été activée grâce à
la méthode taint() de Javascript. Cette méthode est obsolète
depuis la version 1.2 de Javascript, et ne fonctionne ainsi que sur Netscape Navigator 3. | |
Utiliser efficacement ces propriétés
Les navigateurs ne supportent pas tous le Javascript de la même façon, ainsi,
suivant les instructions Javascript que l'on utilisera (suivant qu'il s'agit de Javascript 1.0, 1.1, ou 1.2)
il faudra exécuter des instructions différentes. Par respect pour vos visiteurs
il est généralement bon de mettre en début de script une fonction qui permet
de déterminer la version du navigateur (et/ou sa marque) et exécuter les instructions
appropriées en fonction du résultat.
Voici une grille avec les navigateurs, les valeurs de propriétés et quelques
fonctionalités associées à ceux-ci :
| Navigateur |
Version |
navigator.appName |
navigator.appVersion |
Javascript |
| Ns Navigator |
2 |
Netscape |
2.0 (Win95; I) |
1.0 |
| Ns Navigator |
3 |
Netscape |
3.xx (Win95; I) |
1.1 |
| Ns Communicator |
4 |
Netscape |
4.xx (Win95; I) |
1.1 |
| Ms Internet Explorer |
3 |
Microsoft Internet Explorer |
2.0 (compatible; MSIE 3.0x; Win*) |
1.0 |
| Ms Internet Explorer |
4 |
Microsoft Internet Explorer |
4.0x (compatible; MSIE 4.0x; Win*) |
1.2 |
| Ms Internet Explorer |
5 |
Microsoft Internet Explorer |
5.xx (compatible; MSIE 5.0x; Win*) |
1.2 |
Exemple de script
Il est parfois bon de pouvoir exécuter un ensemble d'instructions différent
selon que le navigateur utilisé est Netscape Navigator ou Microsoft Internet Explorer,
voici un exemple de petit script permettant la distinction :
Nom = navigator.appName;
if (Nom == 'Netscape') {
placer ici les instructions à exécuter s'il s'agit
de Netscape Navigator 4 ou supérieur
}
if (Nom == 'Microsoft Internet Explorer') {
placer ici les instructions à exécuter s'il s'agit
de Microsoft Internet Explorer 4 ou supérieur
}
Une méthode améliorée si jamais on a souvent besoin de faire le test de navigateur, car l'accès
à l'objet navigator n'est effectué qu'une seule fois. Ensuite deux variables booléenne sont utilisées,
et le test consiste uniquement à regarder si la variable contient 1 au 0 et le navigateur n'a pas besoin de comparer la chaine nom
à chaque test de navigateur...
Nom = navigator.appName;
ns = (Nom == 'Netscape') ? 1:0
ie = (Nom == 'Microsoft Internet Explorer') ? 1:0
if (ns) {
placer ici les instructions à exécuter s'il s'agit
de Netscape Navigator 4 ou supérieur
}
if (ie) {
placer ici les instructions à exécuter s'il s'agit
de Microsoft Internet Explorer 4 ou supérieur
}
Imaginons que l'on veuille maintenant afficher du DHTML (HTML dynamique, c'est-à-dire
dont les objets peuvent bouger et être modifiés à loisir...), il faut alors
vérifier que les versions des navigateurs sont supérieures à 4 (seuls Netscape Navigator 4 (ou
supérieur) et Microsoft Internet Explorer 4 (ou supérieur) le supportent.
Voici le script permettant de vérifier que les versions sont supérieures à 4 :
Nom = navigator.appName;
Version = navigator.appVersion;
ns4 = (Nom == 'Netscape' && Version >= 4 ) ? 1:0
ie4 = (Nom == 'Microsoft Internet Explorer' && Version >= 4 ) ? 1:0
if (ns4) {
placer ici les instructions à exécuter s'il s'agit de
Netscape Navigator 4 ou supérieur
}
if (ie4) {
placer ici les instructions à exécuter s'il s'agit de
Microsoft Internet Explorer 4 ou supérieur
}
Cours de JavaScript en partenariat avec CommentCaMarche.net
N'hésitez pas à le visiter il contient des cours sur presque tous les langages de programmation !
Retourner au haut de la page..
|