Javascript Formulaire
Javascript Formulaire
BREF PRÉAMBULE...............................................................................................3
CHAPITRE 1 : JAVASCRIPT.................................................................................4
Page : 1
Support de Formation Apprendre le javascript Première partie
Page : 2
Apprendre le javascript Première partie Support de formation
BREF PRÉAMBULE
un niveau avancé (noté + ) pour aller un peu plus loin dans ces concepts
(sans prétendre cependant à l'expertise).
Page : 3
Support de Formation Apprendre le javascript Première partie
CHAPITRE 1 : JAVASCRIPT
Javascript est donc une extension du code Html des pages Web. Les scripts, qui
s'ajoutent ici aux balises Html, peuvent en quelque sorte être comparés aux macros
d'un traitement de texte.
Ces scripts vont être gérés et exécutés par le browser lui-même sans devoir faire
appel aux ressources du serveur. Ces instructions seront donc traitées en direct et
surtout sans retard par le navigateur.
Javascript n'est donc pas propre aux navigateurs de Netscape (bien que cette firme en
soit un fervent défenseur). Microsoft l'a d'ailleurs aussi adopté à partir de son
Internet Explorer 3. On le retrouve, de façon améliorée, dans Explorer 4.
L'avenir de Javascript est entre les mains des deux grands navigateurs du Web et en
partie lié à la guerre que se livrent Microsoft et Netscape. On s'accorde à prédire un
avenir prometteur à ce langage surtout de par son indépendance vis à vis des
ressources du serveur.
Page : 4
Apprendre le javascript Première partie Support de formation
Il importe de savoir que Javascript est totalement différent de Java. Bien que les
deux soient utilisés pour créer des pages Web évoluées, bien que les deux reprennent
le terme Java (café en américain), nous avons là deux outils informatiques bien
différents.
Javascript Java
Code intégré dans la page Html Module (applet) distinct de la page Html
Code interprété par le browser au moment de Code source compilé avant son exécution
l'exécution
Permet d'accéder aux objets du navigateur N'accède pas aux objets du navigateur
Confidentialité des codes nulle (code source Sécurité (code source compilé)
visible)
Plus simplement :
Javascript est plus simple à mettre en oeuvre car c'est du code que vous
ajouterez à votre page écrite en Html avec par exemple un simple éditeur
de texte comme Notepad. Java pour sa part, nécessite une compilation
préalable de votre code.
Comme votre code Javascript est inclus dans votre page Html, celui-ci est
visible et peut être copié par tout le monde (view source). Ce qui pour les
entreprises (et les paranoïaques) est assez pénalisant. Par contre, en Java,
votre code source est broyé par le compilateur et est ainsi indéchiffrable.
Page : 5
Support de Formation Apprendre le javascript Première partie
En bon internaute, vous voyez sur votre écran une page Web.
Javascript va diviser cette page en objets et surtout va vous permettre d'accéder à ces
objets, d'en retirer des informations et de les manipuler.
Voyons d'abord une illustration des différents objets qu'une page peut contenir.
Dans cette fenêtre, il y a un document Html. C'est l'objet document. Autrement dit
(et c'est là que l'on voit apparaître la notion de la hiérarchie des objets Javascript),
l'objet fenêtre contient l'objet document.
Page : 6
Apprendre le javascript Première partie Support de formation
Dans ce document, on trouve trois objets. Des boutons radio, un bouton classique et
une zone de texte. Ce sont respectivement l'objet radio, l'objet bouton, l'objet texte.
Autrement dit l'objet fenêtre contient l'objet document qui contient l'objet formulaire
qui contient à son tour l'objet radio, l'objet fenêtre contient l'objet document qui
contient l'objet formulaire qui contient à son tour l'objet bouton et l'objet fenêtre
contient l'objet document qui contient l'objet formulaire qui contient à son tour
l'objet texte.
Page : 7
Support de Formation Apprendre le javascript Première partie
radio
texte
Pour accéder à un objet (vous l'avez peut-être déjà deviné), il faudra donner le
chemin complet de l'objet en allant du contenant le plus extérieur à l'objet à l'objet
référencé.
Nous avons mis l'objet window entre parenthèses car comme il occupe la première
place dans la hiérarchie, il est repris par défaut par Javascript et devient donc
facultatif.
Et enfin pour les puristes, Javascript n'est pas à proprement parler un langage orienté
objet tel que C++ ou Java. On dira plutôt que Javascript est un langage basé sur les
objets.
Page : 8
Apprendre le javascript Première partie Support de formation
Une propriété est un attribut, une caractéristique, une description de l'objet. Par
exemple, l'objet volant d'une voiture a comme propriétés qu'il peut être en bois ou en
cuir. L'objet livre a comme propriétés son auteur, sa maison d'édition, son titre, son
numéro ISBN, etc.
De même les objets Javascript ont des propriétés personnalisées. Dans le cas des
boutons radio, une de ses propriétés est, par exemple, sa sélection ou sa non-
sélection (checked en anglais).
nom_de_l'objet.nom_de_la_propriété
Dans le cas du bouton radio "semaine", pour tester la propriété de sélection, on écrira
document.form.radio[0].checked
Page : 9
Support de Formation Apprendre le javascript Première partie
Par contre, il faut être attentif aux versions de Javascript exploitées par ces browers.
(Communicator)
Il faut bien admettre que Javascript est plutôt l'affaire de Netscape et que vous
courrez au devant d'une collection d'ennuis en utilisant Explorer 3 pour le Javascript.
Page : 10
Apprendre le javascript Première partie Support de formation
Une page Html n'est que du texte. Le code Javascript n'est lui aussi que du texte.
Quoi de plus simple qu'un éditeur de ... texte comme le Notepad de Windows pour
inclure votre Javascript dans votre page Html. Un éditeur Html de la première
génération (un bon vieil éditeur qui fait encore apparaître les balises), comme HTML
Notepad, fait également bien l'affaire.
Page : 11
Support de Formation Apprendre le javascript Première partie
De ce qui précède, vous savez déjà que votre script vient s'ajouter à votre page Web.
Le langage Html utilise des tags ou balises pour "dire" au browser d'afficher une
portion de texte en gras, en italique, etc.
Dans la logique du langage Html, il faut donc signaler au browser par une balise, que
ce qui suit est un script et que c'est du Javascript (et non du VBScript). C'est la balise
<SCRIPT LANGUAGE="Javascript">.
C'est la balise
</SCRIPT>.
Il vous sera peut-être utile d'inclure des commentaires personnels dans vos codes
Javascript. C'est même vivement recommandé comme pour tous les langages de
programmation (mais qui le fait vraiment ?).
// commentaire
Il sera aussi possible d'inclure des commentaires sur plusieurs lignes avec le code
/* commentaire */
Page : 12
Apprendre le javascript Première partie Support de formation
<SCRIPT LANGUAGE="javascript">
...
programme Javascript
...
</SCRIPT>
- n'importe où.
- mais là où il le faut.
Le browser traite votre page Html de haut en bas (y compris vos ajoutes en
Javascript). Par conséquent, toute instruction ne pourra être exécutée que si le
browser possède à ce moment précis tous les éléments nécessaires à son exécution.
Ceux-ci doivent donc être déclarés avant ou au plus tard lors de l'instruction.
Pour s'assurer que le programme script est chargé dans la page et prêt à fonctionner à
toute intervention de votre visiteur (il y a des impatients) on prendra l'habitude de
déclarer systématiquement (lorsque cela sera possible) un maximum d'éléments dans
les balises d'en-tête soit entre <HEAD> et </HEAD> et avant la balise <BODY>. Ce
sera le cas par exemple pour les fonctions.
Rien n'interdit de mettre plusieurs scripts dans une même page Html.
Page : 13
Support de Formation Apprendre le javascript Première partie
Sans vraiment entrer dans les détails, voyons une première instruction Javascript (en
fait une méthode de l'objet window) soit l'instruction alert().
alert("votre texte");
Cette instruction affiche un message (dans le cas présent votre texte entre les
guillemets) dans une boite de dialogue pourvue d'un bouton OK. Pour continuer dans
la page, le lecteur devra cliquer ce bouton.
<HEAD> ...
</HEAD> ...
<BODY> ...
</BODY> ...
</HTML> ...
5.7 REMARQUES
Javascript est « case sensitive ». Ainsi il faudra écrire alert() et non Alert(). Pour
l'écriture des instructions Javascript, on utilisera l'alphabet ASCII classique (à 128
caractères) comme en Html. Les caractères accentués comme é ou à ne peuvent être
employés que dans les chaînes de caractères c.-à-d. dans votre texte de notre
exemple.
Page : 14
Apprendre le javascript Première partie Support de formation
Les guillemets " et l'apostrophe ' font partie intégrante du langage Javascript. On
peut utiliser l'une ou l'autre forme à condition de ne pas les mélanger. Ainsi
alert("...') donnera un message d'erreur. Si vous souhaiter utiliser des guillemets dans
vos chaînes de caractères, tapez \" ou \' pour les différencier vis à vis du compilateur.
Avec les différentes versions déjà existantes (Javascript 1.0, Javascript 1.1 et
Javascript 1.2), on peut imaginer des scripts adaptés aux différentes versions mais
surtout aux différents navigateurs .
<SCRIPT LANGUAGE="Javascript">
var version="1.0";
</SCRIPT>
<SCRIPT LANGUAGE="Javascript1.1">
var version=1.1;
</SCRIPT>
<SCRIPT LANGUAGE="Javascript1.2">
var version=1.2;
</SCRIPT>
<SCRIPT LANGUAGE="Javascript">
</SCRIPT>
Page : 15
Support de Formation Apprendre le javascript Première partie
Il est possible d'utiliser des fichiers externes pour les programmes Javascript. On
peut ainsi stocker les scripts dans des fichiers distincts (avec l'extension .js) et les
appeler à partir d'un fichier Html. Le concepteur peut de cette manière se constituer
une bibliothèque de script et les appeler à la manière des #include du C ou C++. La
balise devient
Outre les annotations personnelles, les commentaires peuvent vous être d'une utilité
certaine en phase de débogage d'un script pour isoler (sans effacer) une ligne
suspecte.
Pour les esprits compliqués, notons que les commentaires ne peuvent être imbriqués
sous peine de message d'erreur. La formulation suivante est donc à éviter :
Joujou des débutants en Javascript, cette petite fenêtre est à utiliser avec parcimonie
pour attirer l'attention du lecteur pour des choses vraiment importantes. Et puis, elles
ne sont vraiment pas destinées à raconter sa vie. Javascript met à votre disposition la
possibilité de créer de nouvelles fenêtres de la dimension de votre choix qui
apparaissent un peu comme les popup des fichiers d'aide. Nous les étudierons plus
loin dans l'objet Window.
Alert() est une méthode de l'objet Window. Pour se conformer à la notation classique
nom_de_l'objet.nom_de_la_propriété, on aurait pu noter window.alert(). Window
venant en tête des objets Javascript, celui-ci est repris par défaut par l'interpréteur et
devient en quelque sorte facultatif.
Si vous souhaitez que votre texte de la fenêtre alert() s'inscrive sur plusieurs lignes, il
faudra utiliser le caractère spécial /n pour créer une nouvelle ligne.
Page : 16
Apprendre le javascript Première partie Support de formation
Rappelez-vous... Nous avions montré que ce qui apparaît sur votre écran, peut être
"découpé" en objets et que Javascript allait vous donner la possibilité d'accéder à ces
objets (Un peu de théorie objet). La page Html qui s'affiche dans la fenêtre du
browser est un objet de type document.
nom_de_l'objet.nom_de_la_méthode
document.write();
write("votre texte");
write(resultat);
Page : 17
Support de Formation Apprendre le javascript Première partie
<HTML>
<BODY>
<SCRIPT LANGUAGE="Javascript">
<!--
//-->
</SCRIPT>
</BODY>
</HTML>
La méthode writeln() est fort proche de write() à ceci près qu'elle ajoute un retour
chariot à la fin des caractères affichés par l'instruction. Ce qui n'a aucun effet en
Html. Pour faire fonctionner write() Il faut l'inclure dans des balises <PRE>.
<PRE>
<SCRIPT LANGUAGE="Javascript">
<--
document.writeln("Ligne 1");
document.writeln("Ligne 2");
//-->
</SCRIPT>
</PRE>
Page : 18
Apprendre le javascript Première partie Support de formation
6.5.1 variable.big();
L'emploi de .big() affichera la variable comme si elle était comprise entre les balises
Html <BIG></BIG>.
document.write("<BIG>"+str+"</BIG>");
document.write('<BIG>Something</BIG>');
document.write(str.big());
document.write("Something".big());
6.5.2 variable.small();
L'emploi de .small() affichera la variable comme si elle était comprise entre les
balises Html <SMALL> </SMALL>.
str="Something";
document.write("<SMALL>"+str +"</SMALL>");
document.write("<SMALL>Something" +"</SMALL>");
document.write(str.small());
document.write("Something".small());
6.5.3 variable.blink();
L'emploi de .blink() affichera la variable comme si elle était comprise entre les
balises Html <BLINK></BLINK>. Pour rappel, cette balise (qui est par ailleurs vite
ennuyeuse) n'est valable que sous Netscape 3 et plus.
str="Something";
document.write('<BLINK>'+str+'</BLINK>');
document.write("<BLINK>Something</BLINK>");
document.write(str.blink());
document.write("Something".blink());
Page : 19
Support de Formation Apprendre le javascript Première partie
6.5.4 variable.bold();
L'emploi de .bold() affichera la variable comme si elle était comprise entre les
balises Html <B></B>.
str="Some words";
document.write("<B>"+str+"</B>");
document.write("<B>Some words</B>");
document.write(str.bold());
document.write("Some words".bold());
6.5.5 variable.fixed();
L'emploi de .fixed() affichera la variable comme si elle était comprise entre les
balises Html <TT></TT>.
str="Something";
document.write("<TT>"+str+"</TT>");
document.write("<TT>Something</TT>");
document.write(str.fixed());
document.write("Something".fixed());
6.5.6 variable.italics();
L'emploi de .italics() affichera la variable comme si elle était comprise entre les
balises Html <I></I>.
str="Something";
document.write("<I>"+str+"</I>");
document.write("<I>Something</I>");
document.write(str.italics());
document.write("Some word".italics());
Page : 20
Apprendre le javascript Première partie Support de formation
6.5.7 variable.fontcolor(color );
L'emploi de .fontcolor(color) affichera la variable comme si elle était comprise entre
les balises Html <FONT COLOR="color"> </FONT>.
str1="Some words";
str2="red";
document.write(str1.fontcolor(str2));
document.write(str1.fontcolor("red"));
6.5.8 variable.fontsize(x);
L'emploi de .fontsize(x) affichera la variable comme si elle était comprise entre les
balises Html <FONT SIZE="x"></FONT> où x est un nombre de 1 à 7 ou exprimé
en plus ou en moins par rapport à 0 par exemple -2, -1, +1, +2.
str="Something";
x=3;
document.write(str.fontsize(3));
document.write(str.fontsize(x));
Page : 21
Support de Formation Apprendre le javascript Première partie
6.5.9 variable.strike();
L'emploi de .strike() affichera la variable comme si elle était comprise entre les
balises Html
<STRIKE></STRIKE>.
str="Something";
document.write("<STRIKE>"+str +"</STRIKE>");
document.write("<STRIKE>Something" +"</STRIKE>");
document.write(str.strike());
document.write("Something".strike());
6.5.10 variable.sub();
L'emploi de .sub() affichera la variable comme si elle était comprise entre les balises
Html <SUB> </SUB>.
str="Something";
document.write("<SUB>"+str+"</SUB>");
document.write("<SUB>Something" +"</SUB>");
document.write(str.sub());
document.write("Something".sub());
6.5.11 variable.sup();
L'emploi de .sup() affichera la variable comme si elle était comprise entre les balises
Html <SUP></SUB>.
str="Something";
document.write("<SUP>"+str+"</SUP>");
document.write("<SUP>Something</SUP>");
document.write(str.sup());
document.write("Something".sup());
Page : 22
Apprendre le javascript Première partie Support de formation
Rappelons tout d'abord que ce qui suit est optionnel et que vous pouvez utiliser
l'instruction document.write() de façon tout à fait classique.
6.6.1document.bgColor
Cette instruction permet de spécifier la couleur d'arrière-plan d'un objet document.
On peut employer le nom ou la valeur RGB de la couleur.
document.bgColor="white";
document.bgColor="#FFFFFF";
6.6.2 document.fgColor
Cette instruction permet de spécifier la couleur d'avant-plan (texte) d'un objet
document. On peut employer le nom ou la valeur RGB de la couleur.
document.fgColor="black";
document.fgColor="#000000";
6.6.3 document.alinkColor
Cette instruction permet de spécifier la couleur d'un lien actif (après le clic de la
souris mais avant de quitter le lien) d'un objet document. On peut employer le nom
ou la valeur RGB de la couleur.
document.alinkColor="white";
document.alinkColor="#FFFFFF";
6.6.4 document.linkColor
Cette instruction permet de spécifier la couleur d'un hyperlien d'un objet document.
On peut employer le nom ou la valeur RGB de la couleur.
document.linkColor="white";
document.linkColor="#FFFFFF";
6.6.5 document.vlinkColor
Cette instruction permet de spécifier la couleur d'un hyperlien déjà visité d'un objet
document. On peut employer le nom ou la valeur RGB de la couleur.
document.linkColor="white";
document.linkColor="#FFFFFF";
Page : 23
Support de Formation Apprendre le javascript Première partie
Les variables contiennent des données qui peuvent être modifiées lors de l'exécution
d'un programme. On y fait référence par le nom de cette variable.
Un nom de variable doit commencer par une lettre (alphabet ASCII) ou le signe_ et
se composer de lettres, de chiffres et des caractères _ et $ (à l'exclusion du blanc). Le
nombre de caractères n'est pas précisé. Pour rappel Javascript est sensible à la case.
Attention donc aux majuscules et minuscules!
soit de façon explicite. On dit à Javascript que ceci est une variable.
La commande qui permet de déclarer une variable est le mot var. Par
exemple :
var Numero = 1
var Prenom = "Luc"
Numero = 1
Prenom = "Luc"
Attention! Malgré cette apparente facilité, la façon dont on déclare la variable aura
une grande importance pour la "visibilité" de la variable dans le programme
Javascript. Voir à ce sujet, la distinction entre variable locale et variable globale dans
le Javascript avancé de ce chapitre.
Pour la clarté de votre script et votre facilité, on ne peut que conseiller d'utiliser à
chaque fois le mot var pour déclarer une variable.
Page : 24
Apprendre le javascript Première partie Support de formation
Type Description
Des nombres Tout nombre entier ou avec virgule tel que 22 ou 3.1416
Des chaînes de Toute suite de caractères comprise entre guillemets telle que "suite
caractères de caractères"
Des booléens Les mots true pour vrai et fase pour faux
Notons aussi que contrairement au langage C ou C++, Il ne faut pas déclarer le type
de données d'une variable. On n'a donc pas besoin de int, float, double, char et autres
long en Javascript.
7.4 EXERCICE
Nous allons employer la méthode write() pour afficher des variables. On définit une
variable appelée texte qui contient une chaîne de caractères "Mon chiffre préféré est
" et une autre appelée variable qui est initialisée à 7.
<HTML>
<BODY>
<SCRIPT LANGUAGE="Javascript">
<!--
var texte = "Mon chiffre préféré est le "
var variable = 7
document.write(texte + variable);
//-->
</SCRIPT>
</BODY>
</HTML>
Le résultat se présente comme suit :
Page : 25
Support de Formation Apprendre le javascript Première partie
Les mots de la liste ci-après ne peuvent être utilisés pour des noms de fonctions et de
variables .Certains de ces mots sont des mots clés Javascript, d'autres ont été réservés
par Netscape pour un futur usage éventuel.
A abstract
B boolean break byte
C case catch char class const continue
D default do double
E else extends
F false final finally float for function
G goto
I if implements import in instanceof int interface
L long
N native new null
P package private protected public
R return
S short static super switch synchronized
T this throw throws transient true try
V var void
W while with
Les variables déclarées tout au début du script, en dehors et avant toutes fonctions
(voir plus loin...), seront toujours globales, qu'elles soient déclarées avec var ou de
façon contextuelle. On pourra donc les exploiter partout dans le script.
Dans une fonction, une variable déclarée par le mot clé var aura une portée limitée à
cette seule fonction. On ne pourra donc pas l'exploiter ailleurs dans le script. D'où
son nom de locale. Par contre, toujours dans une fonction, si la variable est déclarée
contextuellement (sans utiliser le mot var), sa portée sera globale.
Page : 26
Apprendre le javascript Première partie Support de formation
Les variables, c'est bien mais encore faut-il pouvoir les manipuler ou les évaluer.
Voyons (et ce n'est peut-être pas le chapitre le plus marrant de ce tutorial) les
différents opérateurs mis à notre disposition par Javascript.
Page : 27
Support de Formation Apprendre le javascript Première partie
On appelle ainsi les opérateurs qui réalisent un calcul dans lequel une variable
intervient des deux côtés du signe = (ce sont donc en quelque sorte également des
opérateurs d'attribution).
Aussi appelés opérateurs booléens, ses opérateurs servent à vérifier deux ou plusieurs
conditions.
Page : 28
Apprendre le javascript Première partie Support de formation
Les opérateurs s'effectuent dans l'ordre suivant de priorité (du degré de priorité le
plus faible ou degré de priorité le plus élevé).
Opération Opérateur
= += -= *= /= %= affectation
?: opérateur conditionnel
|| ou logique
&& et logique
== != égalité
+- addition soustraction
*/ multiplier diviser
! - ++ -- unaire
() parenthèses
Page : 29
Support de Formation Apprendre le javascript Première partie
9.1 DÉFINITION
les fonctions propres à Javascript. On les appelle des "méthodes". Elles sont
associées à un objet bien particulier comme c'était le cas de la méthode Alert()
avec l'objet window.
les fonctions écrites par vous-même pour les besoins de votre script. C'est à
celles-là que nous nous intéressons maintenant.
function nom_de_la_fonction(arguments)
{
... code des instructions ...
}
Le nom de la fonction suit les mêmes règles que celles qui régissent le nom de
variables (nombre de caractères indéfini, commencer par une lettre, peuvent inclure
des chiffres...). Pour rappel, Javascript est sensible à la case. Ainsi fonction() ne sera
pas égal à Fonction(). En outre, Tous les noms des fonctions dans un script doivent
être uniques.
La mention des arguments est facultative mais dans ce cas les parenthèses doivent
rester. C'est d'ailleurs grâce à ces parenthèses que l'interpréteur Javascript distingue
les variables des fonctions. Nous reviendrons plus en détail sur les arguments et
autres paramètres dans la partie Javascript avancé.
Lorsque une accolade est ouverte, elle doit impérativement, sous peine de message
d'erreur, être refermée. Prenez la bonne habitude de fermer directement vos
accolades et d'écrire votre code entre elles.
Le fait de définir une fonction n'entraîne pas l'exécution des commandes qui la
composent. Ce n'est que lors de l'appel de la fonction que le code de programme est
exécuté.
Page : 30
Apprendre le javascript Première partie Support de formation
L'appel d'une fonction se fait le plus simplement du monde par le nom de la fonction
(avec les parenthèses).
Il faudra veiller en toute logique (car l'interpréteur lit votre script de haut vers le bas)
à ce que votre fonction soit bien définie avant d'être appelée.
Il est donc prudent ou judicieux de placer toutes les déclarations de fonction dans
l'en-tête de votre page c.-à-d .dans la balise <HEAD> ...</HEAD>. Vous serez ainsi
assuré que vos fonctions seront déjà prises en compte par l'interpréteur avant qu'elles
soient appelées dans le <BODY>.
9.5 EXEMPLE
Dans cet exemple, on définit dans les balises HEAD, une fonction appelée message()
qui affiche le texte "Bienvenue à ma page". cette fonction sera appelée au
chargement de la page voir onLoad=.... dans le tag <BODY>.
<HTML>
<HEAD>
<SCRIPT LANGUAGE="Javascript">
<--
function message() {
document.write("Bienvenue à ma page");
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="message()">
</BODY>
</HTML>
On peut passer des valeurs ou paramètres aux fonctions Javascript. La valeur ainsi
passée sera utilisée par la fonction.
Pour passer un paramètre à une fonction, on fournit un nom d'une variable dans la
déclaration de la fonction.
Page : 31
Support de Formation Apprendre le javascript Première partie
Un exemple un peu simplet pour comprendre. J'écris une fonction qui affiche une
boite d'alerte dont le texte peut changer.
function Exemple(Texte)
{
alert(texte);
}
Le nom de la variable est Texte et est définie comme un paramètre de la fonction.
Exemple("Salut à tous");
Page : 32
Apprendre le javascript Première partie Support de formation
On peut passer plusieurs paramètres à une fonction. Comme c'est souvent le cas en
Javascript, on sépare les paramètres par des virgules.
Le principe est simple (la pratique parfois moins). Pour renvoyer un résultat, il suffit
d'écrire le mot clé return suivi de l'expression à renvoyer. Notez qu'il ne faut pas
entourer l'expression de parenthèses. Par exemple :
function cube(nombre)
{
var cube = nombre*nombre*nombre
return cube;
}
Précisons que l'instruction return est facultative et qu'on peut trouver plusieurs return
dans une même fonction.
Pour exploiter cette valeur de la variable retournée par la fonction, on utilise une
formulation du type document.write(cube(5)).
Page : 33
Support de Formation Apprendre le javascript Première partie
Avec les fonctions, le bon usage des variables locales et globales prend toute son
importance.
Une variable déclarée dans une fonction par le mot clé var aura une portée limitée à
cette seule fonction. On ne pourra donc pas l'exploiter ailleurs dans le script. On
l'appelle donc variable locale.
function cube(nombre)
{
var cube = nombre*nombre*nombre
}
Ainsi la variable cube dans cet exemple est une variable locale. Si vous y faites
référence ailleurs dans le script, cette variable sera inconnue pour l'interpréteur
Javascript (message d'erreur).
Si la variable est déclarée contextuellement (sans utiliser le mot var), sa portée sera
globale -- et pour être tout à fait précis, une fois que la fonction aura été exécutée--.
function cube(nombre)
{
cube = nombre*nombre*nombre
}
Les variables déclarées tout au début du script, en dehors et avant toutes fonctions,
seront toujours globales, qu'elles soient déclarées avec var ou de façon contextuelle.
<SCRIPT LANGUAGE="javascript">
var cube=1
function cube(nombre)
{
var cube = nombre*nombre*nombre
}
</SCRIPT>
La variable cube sera bien globale.
Pour la facilité de gestion des variables, on ne peut que conseiller de les déclarer en
début de script (comme dans la plupart des langages de programmation). Cette
habitude vous met à l'abri de certaines complications.
Page : 34
Apprendre le javascript Première partie Support de formation
10.1 GÉNÉRALITÉS
Avec les événements et surtout leur gestion, nous abordons le côté "magique" de
Javascript.
Les événements Javascript, associés aux fonctions, aux méthodes et aux formulaires,
ouvrent grand la porte pour une réelle interactivité de vos pages.
Description Evénement
Page : 35
Support de Formation Apprendre le javascript Première partie
Pour être efficace, il faut qu'à ces événements soient associées les actions prévues
par vous. C'est le rôle des gestionnaires d'événements. La syntaxe est
onévénement="fonction()"
De façon littéraire, au clic de l'utilisateur, ouvrir une boite d'alerte avec le message
indiqué.
10.3.1 onclick
Evénement classique en informatique, le clic de la souris.
<FORM>
<INPUT TYPE="button" VALUE="Cliquez ici" onClick="alert('Vous avez bien
cliqué ici')">
</FORM>
Les événements onLoad et onUnload sont utilisés sous forme d'attributs de la balise
<BODY> ou <FRAMESET>. On peut ainsi écrire un script pour souhaiter la
bienvenue à l'ouverture d'une page et un petit mot d'au revoir au moment de quitter
celle-ci.
<HTML>
<HEAD>
<SCRIPT LANGUAGE='Javascript'>
function bienvenue() {
alert("Bienvenue à cette page");
}
function au_revoir() {
alert("Au revoir");
}
</SCRIPT>
</HEAD>
<BODY onLoad='bienvenue()' onUnload='au_revoir()'>
Html normal
</BODY>
</HTML>
Page : 36
Apprendre le javascript Première partie Support de formation
Notons qui si onmouseOver est du Javascript 1.0, onmouseOut est du Javascript 1.1.
10.3.5 onFocus
L'événement onFocus survient lorsqu'un champ de saisie a le focus c.-à-d. quand son
emplacement est prêt à recevoir ce que l'utilisateur à l'intention de taper au clavier.
C'est souvent la conséquence d'un clic de souris ou de l'usage de la touche "Tab".
10.3.6 onBlur
L'événement onBlur a lieu lorsqu'un champ de formulaire perd le focus. Cela se
produit quand l'utilisateur ayant terminé la saisie qu'il effectuait dans une case, clique
en dehors du champ ou utilise la touche "Tab" pour passer à un champ. Cet
événement sera souvent utilisé pour vérifier la saisie d'un formulaire.
Le code est :
<FORM>
<INPUT TYPE=text onBlur="alert('Ceci est un Blur')">
</FORM>
10.3.7 onchange
Cet événement s'apparente à l'événement onBlur mais avec une petite différence.
Non seulement la case du formulaire doit avoir perdu le focus mais aussi son contenu
doit avoir été modifié par l'utilisateur.
10.3.8 onselect
Cet événement se produit lorsque l'utilisateur a sélectionné (mis en surbrillance ou en
vidéo inverse) tout ou partie d'une zone de texte dans une zone de type text ou
textarea.
Page : 37
Support de Formation Apprendre le javascript Première partie
Il nous semble utile dans cette partie "avancée" de présenter la liste des objets
auxquels correspondent des gestionnaires d'événement bien déterminés.
Page : 38
Apprendre le javascript Première partie Support de formation
Ainsi, lorsque l'utilisateur passe avec sa souris sur le lien, la fonction action() est
appelée. L'attribut HREF est indispensable. Il peut contenir l'adresse d'une page Web
si vous souhaitez que le lien soit actif ou simplement des guillemets si aucun lien
actif n'est prévu. Nous reviendrons ci-après sur certains désagréments du codage
HREF="".
Voici un exemple. Par le survol du lien "message important", une fenêtre d'alerte
s'ouvre.
Le code est :
<BODY>
...
<A HREF="" onmouseOver="alert('Coucou')">message important</A>
</BODY>
<HTML>
<HEAD>
<SCRIPT language="Javascript">
function message(){
alert("Coucou")
}
</SCRIPT>
</HEAD>
<BODY>
<A HREF="" onmouseOver="message()">message important</A>
</BODY>
</HTML>
Au risque de nous répéter, si onmouseOver est du Javascript 1.0 et sera donc reconnu
par tous les browsers, onmouseOut est du Javascript 1.1 et ne sera reconnu que par
Netscape 3.0 et plus et Explorer 4.0 et plus (et pas par Netscape 2.0 et Explorer 3.0)
Page : 39
Support de Formation Apprendre le javascript Première partie
Les puristes devront donc prévoir une version différente selon les versions
Javascript.
Vous avez codé votre instruction onmouseOver avec le lien fictif <A HREF=""... >,
vous avez même prévu un petit texte, demandant gentiment à l'utilisateur de ne pas
cliquer sur le lien et comme de bien entendu celui-ci clique quand même.
Pour éviter cela, prenez l'habitude de mettre l'adresse de la page encours ou plus
simplement le signe # (pour un ancrage) entre les guillemets de HREF. Ainsi, si le
lecteur clique quand même sur le lien, au pire, la page encours sera simplement
rechargée et sans perte de temps car elle est déjà dans le cache du navigateur.
Page : 40
Apprendre le javascript Première partie Support de formation
<HTML>
<HEAD>
<SCRIPT LANGUAGE="Javascript1.1">
function lightUp() {
document.images["homeButton"].src="button_hot.gif"
}
function dimDown() {
document.images["homeButton"].src="button_dim.gif"
}
</SCRIPT>
</HEAD>
<BODY>
<A HREF="#" onmouseOver="lightUp();" onmouseOut="dimDown();">
<IMG SRC="button_dim.gif" name="homeButton" width=100 height=50 border=0>
</A>
</BODY>
</HTML>
Il n'y a pas d'exemple ici pour la compatibilité avec les lecteurs utilisant explorer 3.0
en effet, non seulement onmouseOut mais aussi image[] est du Javascript 1.1.
Ce changement d'image ne vous donne-t-il pas des idées?... Petit futé! Et oui, on
peut prévoir une image invisible de la même couleur que l'arrière plan (même
transparente). On la place avec malice sur le chemin de la souris de l'utilisateur et
son survol peut ,à l'insu de l'utilisateur, déclencher un feu d'artifice d'actions de votre
choix. Magique le Javascript ?
Page : 41
Support de Formation Apprendre le javascript Première partie
if (condition vraie)
{
une ou plusieurs instructions;
}
Ainsi, si la condition est vérifiée, les instructions s'exécutent. Si elle ne l'est pas, les
instructions ne s'exécutent pas et le programme passe à la commande suivant
l'accolade de fermeture.
if (condition vraie) {
instructions1;
}
else {
instructions2;
}
Si la condition est vérifiée (true), le bloc d'instructions 1 s'exécute. Si elle ne l'est pas
(false), le bloc d'instructions 2 s'exécute.
Grâce aux opérateurs logiques "et" et "ou", l'expression de test pourra tester une
association de conditions. Ainsi if ((condition1) && (condition2)), testera si la
condition 1 et la condition 2 est réalisée. Et if ((condition1) || (condition2)), testera si
une au moins des conditions est vérifiée.
Pour être complet (et pour ceux qui aiment les écritures concises), il y a aussi :
Page : 42
Apprendre le javascript Première partie Support de formation
Au premier passage, la variable i, étant initialisée à 0, vaut bien entendu 0. Elle est
bien inférieure à 10. Elle est donc incrémentée d'une unité par l'opérateur
d'incrémentation i++ (i vaut alors 2) et les instructions s'exécutent.
+11.3 WHILE
Aussi longtemps que la condition est vérifiée, Javascript continue à exécuter les
instructions entre les accolades. Une fois que la condition n'est plus vérifiée, la
boucle est interrompue et on continue le script. Prenons un exemple.
compt=1;
while (compt<5) {
document.write ("ligne : " + compt + "<BR>");
compt++;
}
document.write("fin de la boucle");
Page : 43
Support de Formation Apprendre le javascript Première partie
Voyons comment fonctionne cet exemple. D'abord la variable qui nous servira de
compteur compt est initialisée à 1. La boucle while démarre donc avec la valeur 1
qui est inférieure à 5. La condition est vérifiée. On exécute les instructions des
accolades. D'abord, "ligne : 1" est affichée et ensuite le compteur est incrémenté de
1 et prend donc la valeur 2. La condition est encore vérifiée. Les instructions entre
les accolades sont exécutées. Et ce jusqu'à l'affichage de la ligne 4. Là, le compteur
après l'incrémentation vaut 5. La condition n'étant plus vérifiée, on continue dans
le script et c'est alors fin de boucle qui est affiché.
Attention ! Avec ce système de boucle, le risque existe (si la condition est toujours
vérifiée), de faire boucler indéfiniment l'instruction. Ce qui à la longue fait
misérablement planter le browser !
ligne : 1
ligne : 2
ligne : 3
ligne : 4
fin de la boucle
+11.4 BREAK
compt=1;
while (compt<5) {
if (compt == 4)
break;
document.write ("ligne : " + compt + "<BR>");
compt++;
}
document.write("fin de la boucle");
Page : 44
Apprendre le javascript Première partie Support de formation
ligne : 1
ligne : 2
ligne : 3
fin de la boucle
+11.5 CONTINUE
L'instruction continue permet de sauter une instruction dans une boucle for ou while
et de continuer ensuite le bouclage (sans sortir de celui-ci comme le fait break).
compt=1;
while (compt<5) {
if (compt == 3){
compt++
continue;}
document.write ("ligne : " + compt + "<BR>");
compt++;
}
document.write("fin de la boucle");
ligne : 1
ligne : 2
ligne : 4
fin de la boucle
Page : 45