Guide pratique et progressif du langage Javascript pour agrémenter les pages web

A propos du guide

Lisez tout !
Vous me remercierez plus tard, et
paradoxalement vous gagnerez du temps.
Orientation sur le guide HTML


Avertissement no 1 (ce qu'il faut savoir avant de se lancer)
  • Le langage Javascript est un langage de programmation, il est possible dans une certaine mesure de se dispenser d'apprendre à programmer et d'utiliser quand même une partie de ce langage grâce au fait qu'il est assez bien intégré au HTML et qu'il possède un bon nombre de fonctions toutes faites qu'il vous suffit de connaître, ou de piquer des routines existantes ou des applets Java pour obtenir des effets intéressants.
  • Mais attention ! Si vous êtes arrivé ici en lisant le guide progressif du langage HTML, (si vous ne l'avez pas lu vous devriez peut-être y songer), vous avez bien vu que plus on voulait utiliser de choses dans une page web et plus cela devenait compliqué pour obtenir un résultat identique sur tous les navigateurs (et toutes leurs versions). Et bien c'est encore pire avec Javascript, il en existe au moins trois versions (1.0, 1.1 et 1.2) et des différences encore plus marquées entre netscrade et internet exploser.
  • Si vous voulez vraiment mettre le nez dans l'engrenage infernal de la folie, c'est à vos risques et périls, je décline quant à moi toute responsabilité quant à votre état mental, vos factures de médicaments, vos accès de rage et de frustration.
  • Comme je ne veux pas non plus me mettre dans de tels états, je ne répondrai pas aux questions du genre: "comment faire pour que cette fonction marche avec netscape version xxxx comme sous internet explorer version yyyy" (ou vice-et-versa) et autres problèmes du même tonneau, cherchez vous même dans la référence ou exposez éventuellement ce genre d'idioties dans le Forum pour tenter éventuellement d'émouvoir un bon samaritain (ou une autre poire), et ça fera au moins rire les autres.

Avertissement no 2 (ce que vous apprendrez et n'apprendrez pas ici)
  • Comme mon guide du langage HTML, celui du Javascript n'est pas une référence complète du langage, son but est de vous faire connaître les différentes fonctions pouvant être utiles à la décoration de pages web, vous apprendre à les utiliser, et les mettre en place, puis si vous voulez continuer, vous pourrez apprendre le javascript, et même apprendre aussi comment écrire un programme en javascript, mais cela n'ira tout de même pas jusqu'à l'exploitation de programmes propriétaires, comme l'utilisation d'une base de donnée ou d'un service clients qui nécéssitent des ressources supplémentaires en logiciels et droits.
  • Pas question non plus de lister bêtement toutes les fonctions, tous les mots-clefs, tous les opérateurs, tous les symboles, tous les objets comme dans tous les autres guides, bien que de telles listes y figurent, elle ne servent qu'à la construction d'un programme et pas forcément à la compréhension du Javascript.
  • Ce n'est pas non plus un recueil de routines toutes faites pour faire des effets miraculeux, même si quelques routines y figurent en bonne et dûe place, vous trouverez tout cela et même plus dans d'autres endroits, ici, vous allez simplement apprendre en douceur comment ça marche et comment exploiter vous-même les fonctions de ce langage ou celles que vous irez piquer sur ce genre de site (ou ailleurs), comment les relier entre elles, de manière à être capable aussi de faire de l'inédit, mais sans avoir à trop se casser la tête, grâce à de nombreuses explications.
  • Ce guide n'aborde que le coté "client" du javascript, c'est à dire, ce qui se passe dans la machine de celui qui vient consulter la page, et pas le coté "serveur" (là, c'est "l'hébergeur" qui travaille), plus habituellement reservé aux applications dites professionelles.
  • Je ne parle pas de softs spécifiques au PC/Windaube comme VisualBasic, Access, ou autres (qui sont généralement employées dans la partie serveur), si vous voulez utiliser ces "choses", consultez leurs documentations respectives, ou changez de guide), ni d'applet/plugs-in particuliers (voir la doc de leur auteur pour leur utilisation respective), de toutes façons l'utilisation de la plupart de ces programmes requiers des licenses et des droit d'accès (bref, du pognon).
  • Ne confondez pas non plus le javascript avec certaines extensions de micro$oft (les layers), ou d'autres langages (php3), ou autres outils que le javascript permet d'utiliser et dont le marchand de tapis précedement cité sort une autre mouture tous les mois.
  • Comme pour mon guide HTML, il est très fortement déconseillé de sauter des leçons, car il pourrait vous manquer des notions indispensables à la compréhension (et donc à la maîtrise) de certaines choses.

Avertissement no 3 (différences entre supports, problèmes et erreurs)
  • le tableau ci-dessous devrait rendre manifeste qu'il va être très compliqué d'écrire un script qui marche dans tous les cas, d'autant plus qu'il n'y a pas que la version du langage qui change, les objets et leur propriétés apparaissent, disparaissent ou évoluent...

    Netscape 2.0Netscape 3.0Netscape 4.0MSIE 3.0MSIE 4.0MSIE 5.0Netscape 6MSIE 6
    Javascript 1.0Javascript 1.1Javascript 1.2Vaguement 1.0Javascript 1.2JScript 1.2
    ???
    JS5

  • Même si on trouve un objet/propriété/méthode/function commun aux deux navigateurs, des paramètres peuvent encore être différents ou inexistants.
  • Autres problèmes connus pour les premières versions de Javascript, les tables et l'impression de la page, il faut éviter d'avoir du Javascript dans une table (ou alors, il faut écrire la table en Javascript et pas en HTML, au détriment de la compatibilité avec les navigateurs qui n'ont pas Javascript ou ceux qui l'ont désactivé), et l'impression de la page jusqu'à la version 1.2, qui se fait sans son contenu en Javascript.
  • Quand un script ne fonctionne pas (la plupart du temps en fait), il est très difficile de savoir exactement où et pourquoi, les navigateurs ne fournissant pas des messages très clairs ni très détaillés (quand ils veulent bien en donner d'ailleurs), mais ceci est en train de changer depuis netscape 6 et msie 5.
  • Il existe plusieurs possibilités d'erreurs, des erreurs de syntaxe, plus ou moins détectées au chargement de la page, des erreurs d'exécution, détectées seulement au moment d'une action particulière et le pire, les erreurs de programmation (ou de conception) qui ne peuvent être détectées que par vous-même.
  • Il vaut mieux connaître aussi le HTML à fond, car les fonctions Javascript viennent se rajouter aux marqueurs HTML, si ce n'est pas votre cas, pas de panique, Le guide progressif du langage HTML est fait pour vous (et je remets 100 francs dans le nourrain).
  • Pour que vos pages restent compatibles avec ceux qui n'ont pas javascript, ou qui l'ont désactivé, ne faites rien d'important ou de vital avec ce langage, juste des "plus" pour agrémenter la page et/ou mettre en valeur certaines choses.

Diversité des médias
Ces avertissements pourront peut-être vous paraître fastidieux ou même carrément superflus, mais ils sont en fait vitaux pour une bonne perception des problèmes causés par une grande variété de plates-formes et de médias, il existe des navigateurs en mode texte uniquement, voire des terminaux à synthèse vocale pour les non ou mal voyants, le Javascript ne sera non seulement pas perçu par eux, mais pourra même constituer une gêne.

Et si l'on imprime vos pages, que donneront toutes vos belles astuces et gadgets sur le papier ?


Couleurs
Les couleurs du guide sont des points de repères pour la relecture rapide, le changement de sujet est indiqué par deux nuances de bleu, les choses importantes sont en rouge, les trucs et astuces en vert et les exemples en jaune clair, la conclusion de la page en lilas.

Recherche rapide et économie d'argent
  • Pour ceux qui ne désirent pas apprendre le javascript mais obtenir une réponse rapide à une question précise (on peut rêver), essayez d'utiliser d'abord l'index, puis éventuellement le forum.
  • L'écriture de ce guide a commencé le 29 mai 1999, il est évolutif en fonction des mises à jour du langage javascript, de vos remarques et questions, consultez l'historique pour en voir les mises à jour.
  • Un courrier des lecteurs donne l'avis de ceux qui veulent bien écrire au sujet du guide.
  • L'archive permet la lecture ou l'impression en mode offline, mais ne vous jetez pas dessus, voici une petite astuce pour réduire la note de téléphone: parcourez les 10 ou 20 premières pages rapidement, coupez la liaison et relisez-les tranquillement en revenant au début, ou en les obtenant dans le cache de votre navigateur en mode non connecté (quand celui-ci n'est pas trop bête et accepte de les afficher).

Toute utilisation commerciale de ce guide et ses dérivés, même partielle est interdite sans autorisation de l'auteur. © 1999-2001 RRB.
Toute autre utilisation du matériel de ce guide (éducative, scolaire, professionnelle, etc...), à but non lucratif est fortement encouragée et gratuite, mais soumise à une approbation préalable de l'auteur.

Toujours prêt ?
Si vous êtes encore là après cette horrible introduction, c'est que vous êtes drôlement courageux et/ou très motivé. J'espère seulement que vous ne me tiendrez pas rigueur de ce qui résultera uniquement de votre propre entêtement contre la jungle que vous allez devoir explorer.

InsultesInfo   Suite

Dernière mise à jour de cette page: 10/03/2002, visiteurs: depuis le 6 avril 2002