|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
Les objets sont la base du JavaScript, ils servent à dialoguer avec le navigateur qui exécutera les scripts. Mais, pas de panique, ce sont des objets très simples, contrairement au C++. On peut grossièrement les comparer aux structures du C. Les objets au sens large Il est important de comprendre le fonctionnement d'un objet. Un objet a des propriétés et/ou des méthodes qui vont nous permettre de travailler. Les propriétés d'un objet Les propriétés d'un objet sont l'ensemble des attributs qui permettent de le décrire. Ces propriétés vont permettre au script d'agir et de manipuler les objets du document HTML dans lequel il est présent. On accède à une propriété "prop" d'un objet "obj" de la manière suivante :
Les méthodes d'un objet Les méthodes d'un objet sont en fait les fonctions qu'il intègre et qui n'ont pas de sens en dehors de cet objet. Par exemple, supposons qu'il existe un objet "document". Une méthode pourrait être "ecrire" qui prend comme argument une chaîne de caractères. Pour appeler la fonction "ecrire" de l'objet "document", il suffira donc de procéder de la façon suivante :
La hiérarchie d'un objet La hiérarchie d'un objet permet de le situer dans une imbrication d'objets. Ainsi, par exemple, un objet "document" contient un objet "cadretexte" qui lui-même contient un objet "obj". Pour utiliser "obj" il faut y accéder de la façon suivante :
Les objets natifs de JavaScript (ou les objets intégrés) Les objets reconnus par JavaScript
La hiérarchie de ces objets Nous avons donc découvert les objets qui composent JavaScript. Maintenant, nous allons commencer à les détailler. L'objet document Si JavaScript était une pièce de théâtre, l'objet "window" constituerait le théâtre, l'objet "document" la pièce, et les autres tiendraient les rôles. Il est donc très important de connaître ses caractéristiques même si nous n'en utilisons qu'une toute petite partie. Les propriétés de l'objet document Nous avons en tout 17 propriétés plus ou moins utiles. La plupart correspondent aux paramètres de la balise <BODY> du document HTML, nous passerons rapidement dessus pour nous concentrer sur les autres.
En fait, pour pouvoir mettre en pratique l'objet document, nous avons besoin de connaître de nouvelles balises HTML tels que <FRAMESET>, <FORMS>... Ainsi, je vous décrirai l'objet document et ses applications au fur et à mesure que Denis Bucher avancera dans sa rubrique HTML. Encore un peu de théorie, l'objet navigator Propriétés de l'objet navigator
javaEnabled() : permet de savoir si le compilateur Java est activé. Cette fonction est utile si l'on utilise des appliquettes (applets) Java. On peut grâce à elle, renvoyer le navigateur vers une page avec/sans appliquettes Java, suivant l'état du compilateur Java. Qui peut bien visiter notre page ? Une des premières choses que l'on apprend en JavaScript, c'est reconnaître le navigateur client. En effet, tous les navigateurs "conformes" à la norme JavaScript 1.1 ne reconnaissent pas certaines fonctions. Ainsi, suivant le navigateur nous utiliserons différentes fonctions.
Voici ce que cela donne sur AWeb et Internet Explorer : Le script est une succession de "window.document.write". La méthode write() de l'objet window.document window.document.write(chose) permet de rediriger tout ce qui est contenu dans chose, vers le flot d'entrée de la page HTML. La partie intéressante se situe dans "chose". Ici, nous utilisons les propriétés de l'objet "navigator" pour connaître le navigateur utilisé. Utilisation des résultats Pour tester le navigateur client, nous devons impérativement utiliser une structure de test. Pour ceux qui connaissent le C/C++ l'équivalent d'un "switch" s'impose. Malheureusement, "switch" n'a pas d'équivalent en JavaScript, nous utiliserons donc une succession de "IF", "THEN", "ELSE". L'instruction conditionnelle IF THEN ELSE Une instruction conditionnelle soumet l'exécution d'une instruction au résultat d'un test et prend la forme :
A présent, on utilise tout ce que l'on a vu ! Nous allons afficher à l'écran le navigateur utilisé.
Étudions ce petit script. Tout d'abord, nous sauvegardons "navigator.appVersion" dans la variable "test". Ensuite, on compare "test" avec des données que l'on connaît, puis on affiche le résultat souhaité. Par contre, je ne peux pas vous donner les valeurs génériques de "appxxxxx" car elles varient suivant la version du navigateur et sa provenance (il n'y a pas de format standard). Le mieux pour les récupérer, est d'exécuter notre premier script qui retourne toutes les valeurs existantes sur chaque navigateur, puis de faire un copier-coller dans votre script. Optimisation du script Un problème majeur est posé par le script précédent : il faut le recopier pour toutes les fonctions. Nous allons donc créer une fonction qui nous retourne une valeur ; ce sera plus simple ainsi, à utiliser.
Nous avons donc une fonction générique qui retourne une valeur suivant le navigateur. On réduit notre nombre de lignes de code donc le temps de chargement de la page. Cette fonction est la même que précédemment, mis à part que nous avons remplacé le code à exécuter par return x où : x=0 brouteur inconnu. x=1 MSIE 4. x=2 AWeb 3.1. Il est vrai que sur un exemple comme celui-ci, l'optimisation ne se voit pas. Par contre, sur une page qui exécute plusieurs fonctions spécifiques à chaque navigateur, la différence est réelle. Voir aussi l'article de Denis Bucher dans ce numéro au sujet des formulaires dans la série. J'attends vos questions, vos remarques, ainsi que vos désirs pour le prochain article sur le JavaScript.
|