Flux rss
Bookmark Ajouter aux favoris / Partager

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, ...). 
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). 
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.
 
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. 
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. 
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. 
plugins Cette propriété renvoie un tableau contenant la liste des plugins installés sur la machine cliente. 
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. 

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. 
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
}


Dernière modification le mardi 14 octobre 2008 à 17:40:36.Ce document intitulé « Javascript - L'objet navigator » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Javascript - L'objet window Les particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de... www.commentcamarche.net/contents/javascript/jswindow.php3
Javascript - L'objet Date Les particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La... www.commentcamarche.net/contents/javascript/jsdate.php3
Javascript - La notion d'objet Notion d'objet Le but de cette section n'a pas pour ambition de traîter de la programmation orientée objet mais de donner une idée de ce qu'est un objet, concept nécessaire à la création de scripts Javascript. Le Javascript traite les éléments qui... www.commentcamarche.net/contents/javascript/jsobjet.php3
Javascript - Connaître la hauteur d'un élément HTMLSi vous souhaitez connaître la hauteur (height) d'un bloc HTML en javascript, il existe deux façons selon les navigateurs : element.offsetHeight element.style.pixelHeight Ainsi, le code suivant permet d'obtenir la hauteur d'un bloc HTML... www.commentcamarche.net/faq/sujet-11739-javascript-connaitre-la-hauteur-d-un-element-html
Javascript - Modifier la hauteur (height) d'un élément HTMLPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il... www.commentcamarche.net/faq/sujet-11740-javascript-modifier-la-hauteur-height-d-un-element-html
Javascript - Echapper une apostropheEn Javascript, une apostrophe (simple quote) dans une chaîne elle-même délimitée par des apostrophes cause une erreur. Pour y remédier il faut échapper l'apostrophe, c'est-à-dire la précéder du caractère antislash pour faire comprendre à... www.commentcamarche.net/faq/sujet-16308-javascript-echapper-une-apostrophe
Javascript : 'Erreur : Objet Requis'Bonjour, Je suis en train de taffer sur un projet en partie réalisée avec AJAX et XML, et je me retrouve bloqué sur un problème d'objet requis :/ Mon code marche parfaitement sous FF (normal, comme d'hab) mais IE fait chier (encore une fois , comme... www.commentcamarche.net/forum/affich-9301172-javascript-erreur-objet-requis
[JAVASCRIPT] Bug IE - getelementbyid (Résolu)Bonjour tout le monde, J imagine que le problème a déjà été posé des milliers de fois mais je trouve pas de solution à celui-ci. J'ai donc un tableau en HTML qui a un id="aloha". Quand je veux accéder à ce tableau en javascript, sous firefox il... www.commentcamarche.net/forum/affich-3537176-javascript-bug-ie-getelementbyid
[Javascript]Objet attendu (Résolu)Bonjour, un petit problème qui devrait être simple à résoudre: objectif: recharger un tableau en gardant les éléments d'une catégorie choisie dans une liste déroulante la fonction js: www.commentcamarche.net/forum/affich-2612662-javascript-objet-attendu
Télécharger JavaScript ObfuscatorJasob JavaScript Obfuscator est un logiciel de protection de code Javascript. Il intègre une interface simple. Il vous permet de convertir votre code Javascript en un code incompréhensible pour l’homme mais lisible pour le navigateur. Le logiciel... www.commentcamarche.net/telecharger/telecharger-34056889-javascript-obfuscator
Javascript - L'objet StringLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation... www.commentcamarche.net/contents/javascript/jsstring.php3
Javascript - L'objet RegExpLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des... www.commentcamarche.net/contents/javascript/jsregexp.php3
Javascript - l'objet ArrayLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si... www.commentcamarche.net/contents/javascript/jsarray.php3