Upload
bibi1974
View
224
Download
0
Embed Size (px)
Citation preview
8/8/2019 20917021-Javascript[1]
1/47
Cours Programmation Langage JavaScript javascript.doc
SOMMAIRE
1. Gnralits ----------------------------------------------------------------------------------------- 31.1 A quoi ressemble un script? ---------------------------------------------------------------------------- 31.2 Masquage du script pour les anciens navigateurs ------------------------------------------------ 31.3 Ajouter des commentaires dans votre code -------------------------------------------------------- 41.4 Un exemple de Javascript ------------------------------------------------------------------------------- 4
1.5 A quel emplacement insrer le Javascript dans votre page HTML ? ------------------------- 51.5.1 Dans la balise script ------------------------------------------------------------------------------------ 51.5.2 Dans un fichier externe -------------------------------------------------------------------------------- 51.5.3 Grce aux gestionnaires dvnements ----------------------------------------------------------- 5
2. Les objets ------------------------------------------------------------------------------------------ 62.1 Manipuler les objets du navigateur ------------------------------------------------------------------- 72.2 Lorganisation hirarchique des objets dune page Web ---------------------------------------- 8
3. Le concept de variable ------------------------------------------------------------------------ 103.1 La dclaration de variables ------------------------------------------------------------------------------ 103.2 Porte (visibilit) des variables ------------------------------------------------------------------------- 113.3 Les types de donnes dans les variables ----------------------------------------------------------- 113.3.1 Nombre entier -------------------------------------------------------------------------------------------- 113.3.2 Nombre virgule flottante (rel) --------------------------------------------------------------------- 113.3.3 Chane de caractres ---------------------------------------------------------------------------------- 123.3.4 Boolen ---------------------------------------------------------------------------------------------------- 123.4 Les particularits de l'objet String --------------------------------------------------------------------- 123.5 Les proprits de l'objet String ------------------------------------------------------------------------- 123.6 Les mthodes de l'objet String ------------------------------------------------------------------------- 133.7 Exemples d'utilisation des mthodes de l'objet String -------------------------------------------- 143.7.1 Mthode charAt() ---------------------------------------------------------------------------------------- 143.7.2 Mthode indexOf() -------------------------------------------------------------------------------------- 14
3.7.3 Mthode lastIndexOf() --------------------------------------------------------------------------------- 153.7.4 Mthode substring() ------------------------------------------------------------------------------------ 153.7.5 Mthodes toLowerCase() et toUpperCase() ----------------------------------------------------- 16
4. Les vnements ---------------------------------------------------------------------------------- 174.1 Liste des vnements ------------------------------------------------------------------------------------ 174.2 Objets auxquels on peut associer des vnements ---------------------------------------------- 184.3 Quelques exemples d'vnements ------------------------------------------------------------------- 184.3.1 Ouverture d'une bote de dialogue lors d'un click ----------------------------------------------- 184.3.2 Modification d'une image lors du survol d'un lien par le pointeur de la souris ----------- 19
5. Les oprateurs ------------------------------------------------------------------------------------ 20
5.1 Les oprateurs de calcul --------------------------------------------------------------------------------- 205.2 Les oprateurs d'assignation ---------------------------------------------------------------------------- 205.3 Les oprateurs d'incrmentation ----------------------------------------------------------------------- 215.4 Les oprateurs de comparaison ------------------------------------------------------------------------ 215.5 Les oprateurs logiques (boolens) ------------------------------------------------------------------- 215.6 Les oprateurs bit--bit (bitwise) ----------------------------------------------------------------------- 225.7 Les oprateurs de rotation de bit ----------------------------------------------------------------------- 225.8 Les priorits -------------------------------------------------------------------------------------------------- 23
6. Les structures de contrle --------------------------------------------------------------------- 246.1 Les structures alternatives (ou conditionnelles) ---------------------------------------------------- 246.1.1 L'instruction if --------------------------------------------------------------------------------------------- 24
ESAT/DMSI/PROA/WGR Page 1 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
2/47
Cours Programmation Langage JavaScript javascript.doc
6.1.2 L'instruction if ... else ----------------------------------------------------------------------------------- 246.1.3 loprateur ternaire (une faon plus courte de faire un test ) --------------------------------- 246.2 Les structures itratives (ou rptitives : les boucles) -------------------------------------------- 256.2.1 Linstruction for ------------------------------------------------------------------------------------------- 256.2.2 L'instruction while ---------------------------------------------------------------------------------------- 256.3 Linstruction continue (saut inconditionnel) ---------------------------------------------------------- 266.4 Linstruction break (arrt inconditionnel) ------------------------------------------------------------- 26
7. Les fonctions -------------------------------------------------------------------------------------- 277.1 La dclaration d'une fonction ---------------------------------------------------------------------------- 277.2 Appel de fonction ------------------------------------------------------------------------------------------- 287.3 Les paramtres dune fonction -------------------------------------------------------------------------- 297.4 Travailler sur des variables dans les fonctions ------------------------------------------------------ 307.5 Le mot cl this ----------------------------------------------------------------------------------------------- 30
8. Les objets ------------------------------------------------------------------------------------------- 318.1 Les mthodes ----------------------------------------------------------------------------------------------- 328.1.1 La mthode write() -------------------------------------------------------------------------------------- 328.1.2 La mthode writeln() ------------------------------------------------------------------------------------ 32
8.2 Dfinir une mthode pour un objet --------------------------------------------------------------------- 338.3 Prsentation des objets du navigateur ---------------------------------------------------------------- 348.4 Classification des objets du navigateur --------------------------------------------------------------- 348.5 Comment accder un objet? -------------------------------------------------------------------------- 348.6 L'objet window ---------------------------------------------------------------------------------------------- 358.6.1 Les proprits de l'objet window --------------------------------------------------------------------- 358.6.2 Les mthodes de l'objet window --------------------------------------------------------------------- 368.7 Les botes de dialogue ------------------------------------------------------------------------------------ 378.7.1 La mthode alert() --------------------------------------------------------------------------------------- 378.7.2 La mthode confirm() ----------------------------------------------------------------------------------- 378.7.3 La mthode prompt() ----------------------------------------------------------------------------------- 38
8.8 L'objet navigator -------------------------------------------------------------------------------------------- 398.8.1 Les proprits de l'objet navigator ------------------------------------------------------------------- 398.8.2 Utiliser efficacement ces proprits ----------------------------------------------------------------- 408.8.3 Exemple de script ---------------------------------------------------------------------------------------- 408.9 L'objet history ------------------------------------------------------------------------------------------------ 418.10 L'objet date ------------------------------------------------------------------------------------------------- 428.10.1 Les mthodes de l'objet date ------------------------------------------------------------------------ 428.10.2 Comment connatre la date ? ------------------------------------------------------------------------ 438.10.3 Modifier le format de la date ------------------------------------------------------------------------- 438.10.4 Modifier la date ------------------------------------------------------------------------------------------ 448.11 l'objet Math -------------------------------------------------------------------------------------------------- 458.11.1 Les mthodes et proprits standards de l'objet Math ---------------------------------------- 45
8.11.2 Logarithmes et exponentielle ------------------------------------------------------------------------- 468.11.3 Trigonomtrie -------------------------------------------------------------------------------------------- 46
9 Bibliographie ---------------------------------------------------------------------------------------- 47
ESAT/DMSI/PROA/WGR Page 2 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
3/47
Cours Programmation Langage JavaScript javascript.doc
1. Gnralits
Le Javascript est une extension du langage HTML qui est incluse dans le code. Ce langage est un langage de
programmation qui permet d'apporter des amliorations au langage HTML en permettant d'excuter des commandes.
Les navigateurs et le Javascript:
Navigateur Version de Javascript supporte
Netscape 2 JavaScript 1.0Netscape 3 JavaScript 1.1
Netscape 4 Javascript 1.2
MSIE 3.0 Javascript 1.0
MSIE 4.0 Javascript 1.2
Il ne faut pas confondre le JavaScript et le Java. En effet contrairement au langage Java, le code est directement crit
dans la page HTML, c'est un langage peu volu qui ne permet aucune confidentialit au niveau des codes (ceux-ci
sont effectivement visibles).
D'autre part l'applet Java (le programme) doit tre compil chaque chargement de la page, d'o un important
ralentissement pour les applets Java contrairement au JavaScript.
Javascript JavaLangage interprt Langage compil
Code intgr au HTMLCode (applet) part du document HTML, appel partir de la
page
Langage peu typ Langage fortement typ (dclaration du type de variable)
Liaisons dynamiques: les rfrences des objets sont
vrifies au chargement
Liaisons statiques: Les objets doivent exister au chargement
(compilation)
Accessibilit du code Confidentialit du code
Sr: ne peut pas crire sur le disque dur Sr: ne peut pas crire sur le disque dur
Le Javascript est case sensitive (en franaissensible la casse), c'est--dire qu'il fait une diffrence entre un nom de
variable contenant ou non des majuscules. Ainsi la fonction bonjour(); n'est pas la mme fonction queBonjour();.Enfin, comme en langage C, chaque instruction se termine par un point-virgule (;).
1.1 A quoi ressemble un script?
Un script est une portion de code qui vient s'insrer dans une page HTML. Le code du script n'est toutefois pas visible
dans la fentre du navigateur car il est compris entre des balises (ou tags) spcifiques qui signalent au navigateur qu'il
s'agit d'un script crit en langage JavaScript.
Les balises annonant un code Javascript sont les suivantes:
Placez ici le code de votre script
1.2 Masquage du script pour les anciens navigateurs
Ce code est ainsi invisible du point de vue du navigateur c'est--dire que ce dernier n'affiche pas dans sa fentre le
code Javascript. Toutefois, d'anciens navigateurs, crs avant l'arrive du Javascript, ne connaissent pas ces balises et
donc les ignorent...
Le code de votre Javascript risque donc de s'afficher sur votre belle page web et venir gcher votre travail. L'astuce
consiste donc ajouter des balises de commentaires l'intrieur mme des balises de script. Ainsi les anciens
navigateurs ignoreront tout simplement l'intgralit du script, tandis que les navigateurs rcents l'interprteront comme
du Javascript!
ESAT/DMSI/PROA/WGR Page 3 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
4/47
Cours Programmation Langage JavaScript javascript.doc
Voici ce que donne le script une fois "masqu" pour les anciens navigateurs:
1.3 Ajouter des commentaires dans votre code
Comme dans tout langage de programmation, il est bon d'ajouter des commentaires dans un de ses scripts
d'une part pour s'y retrouver lorsque, plusieurs mois aprs, l'on voudra revoir son script
d'autre part par esprit d'change pour permettre vos visiteurs curieux de comprendre votre script (cela n'est
pas toujours dsir...)
Il ne faut pas confondre les balises de commentaires du langage HTML (destines masquer le script pour certains
navigateurs) et les caractres de commentaires Javascript (permettant de documenter son script)!
Pour crire des commentaires, Javascript utilise les conventions utilises en lange C/C++
Pour mettre en commentaires une ligne on utilise le double slash:// Tous les caractres derrire le // sont ignors
Pour mettre en commentaire une partie du texte (ventuellement sur plusieurs lignes) on utilise le /* et le */:/* Toutes les lignes comprises entre ces repres
Sont ignores par l'interprteur
de code */
Il faut veiller ne pas imbriquer des commentaires, au risque de provoquer une erreur lors de l'excution du code!
1.4 Un exemple de Javascript
Comme gnralement dans les tutoriels de Javascript on va faire afficher une bote de dialogue suite au chargement
d'une page HTML. Dans ce cas le script est totalement inutile voire ennuyeux pour vos visiteurs...
Cet exemple montre ce que l'abus de Javascript peut donner... Il faudra apprendre se servir du Javascript avec
modration!
Voici la page HTML correspondante:
Voici une page contenant du Javascript
ESAT/DMSI/PROA/WGR Page 4 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
5/47
Cours Programmation Langage JavaScript javascript.doc
1.5 A quel emplacement insrer le Javascript dans votre page HTML ?
Il y a plusieurs faons d'inclure du JavaScript dans une page HTML:
Grce la balise
En mettant le code dans un fichier
Grce aux vnements
1.5.1 Dans la balise script
Le code Javascript peut tre insr o vous le dsirez dans votre page Web, vous devez toutefois veiller ce que le
navigateur ait entirement charg votre script avant d'excuter une instruction.
En effet, lorsque le navigateur charge votre page Web, il la traite de haut en bas, de plus vos visiteurs (souvent
impatients) peuvent trs bien interrompre le chargement d'une page, auquel cas si l'appel d'une fonction se situe avant
la fonction dans votre page il est probable que cela gnrera une erreur si cette fonction n'a pas t charge.
Ainsi, on place gnralement le maximum d'lments du script dans la balise d'en-tte (ce sont les lments situs
entre les balises et ).
Les vnements Javascript seront quant eux placs dans le corps de la page (entre les balises et )
comme attributs d'une commande HTML...
L'argument de la balise dcrit le langage utilis. Il peut tre "JavaScript" "JavaScript1.1" "JavaScript1.2".
On peut ainsi (en passant un argument diffrent de "JavaScript") utiliser d'autres langages de programmation que
celui-ci (par exemple le VbScript).
Pour utiliser diffrentes versions de JavaScript tout en conservant une certaine compatibilit, il suffit de dclarer
plusieurs balises SCRIPT ayant chacune comme paramtre la version du JavaScript correspondante.
1.5.2 Dans un fichier externe
Il est possible de mettre les codes de JavaScript en annexe dans un fichier ( partir de Netscape 3.0 uniquement). Le
code insrer est le suivant:
O url/fichier.js correspond au chemin d'accs au fichier contenant le code en JavaScript, sachant que si celui-ci
n'existe pas, le navigateur excutera le code insr entre les 2 balises.
1.5.3 Grce aux gestionnaires dvnementsOn appelle gestionnaire dvnement une action de l'utilisateur, comme le clic d'un des boutons de la souris. Le code
dans le cas du rsultat d'un vnement s'crit:
eventHandler reprsente le nom de l'vnement.
Exemple :
ESAT/DMSI/PROA/WGR Page 5 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
6/47
Cours Programmation Langage JavaScript javascript.doc
2 Les objets
Le but de cette section n'a pas pour ambition de vous faire connatre la programmation oriente objet (POO) mais de
vous donner une ide de ce qu'est un objet, concept ncessaire la cration de scripts Javascript.
Le Javascript traite les lments qui s'affichent dans votre navigateur comme des objets, c'est--dire des lments
classs selon une hirarchie pour pouvoir les dsigner prcisment
auxquels on associe des proprits
Cette notion semble floue pour l'instant mais voyons cela sur un exemple concret:
Imaginez un arbre dans un jardin comportant une branche sur laquelle se trouve un nid. On suppose que la hirarchie
d'objets est dfinie comme ceci:
jardin
arbre
branche
feuille
nid
largeur: 20
couleur: jaune
hauteur: 4
tronc
racine
salade
balanoire
trapze
corde
nid
largeur: 15
couleur: marron
hauteur: 6
Le nid sur l'arbre est donc dsign comme suit:
jardin.arbre.branche.nid
Contrairement au nid situ sur la balanoire:
jardin.balanoire.nid
Imaginez maintenant que l'on veuille changer la couleur du nid (dans l'arbre) pour le peindre en vert, il suffirait de
taper une commande du genre:
jardin.arbre.branche.nid.couleur = vert;
C'est donc ainsi que l'on reprsente les objets en Javascript, la seule diffrence que ce n'est pas un jardin qui est
reprsent sous forme d'objets mais la fentre de votre navigateur...
ESAT/DMSI/PROA/WGR Page 6 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
7/47
Cours Programmation Langage JavaScript javascript.doc
2.1 Manipuler les objets du navigateur
Javascript divise la page du navigateur en objets, afin de vous permettre d'accder n'importe lequel d'entre eux et de
pouvoir les manipuler par l'intermdiaire de leurs proprits.
On commence gnralement par l'objet le plus grand (celui contenant tous les autres) puis on descend dans la
hirarchie jusqu' l'objet voulu!
L'objet le plus grand est l'objet fentre (les objets en javascript ont leur dnomination en anglais, donc dans le
cas prsent window)
Dans la fentre s'affiche une page, c'est l'objet document
Cette page peut contenir plusieurs objets, comme des formulaires, des images, ...
Pour accder un objet il faut donc partir de l'objet le plus grand (l'objet windowpour descendre l'objet que l'on veut
atteindre.
Prenez par exemple la case cocher (appele checkbox) et le champ de texte (appel champ_text) suivants:
La case cocher checkbox (auquel on a donn le nom checkbox) est repr par le code suivant:
window.document.forms[0].checkbox Le champ de texte (auquel on a donn le nom champ_text) est repr par le code suivant:
window.document.forms[0].champ_text
La case cochercheckbox a entre autre une proprit checked, qui retourne la valeur 1 si la case est coche, 0 dans lecas contraire.
Le champ de texte a par exemple comme proprits:
Name : le nom du champ de texte
Value : le texte contenu dans le champ
Size : la taille du champ de texte
Par exemple, Il est possible de rcuprer le contenu du champ de texte de la faon suivante :
window.document.forms[0].champ_text.value ; (c'est--dire le texte associ au champ de texte que l'on a nomm
champ_text)
ESAT/DMSI/PROA/WGR Page 7 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
8/47
Cours Programmation Langage JavaScript javascript.doc
2.2 Lorganisation hirarchique des objets dune page Web
les lments des formulaires comportant un astrisque (*) se placent dans lattribut type la balise input.Exemple :
ESAT/DMSI/PROA/WGR Page 8 sur 47 jj/10/aa
La fentre:Self, window,
parent, top
navigatorObjets
navigateur
Proprits : AppCodeName, appName, appMinorVersion, cpuClass, platform, plugins,
OpsProfile, userProfile, systemLanguage, userLanguage, appVersion, userAgent, onLine,cookieEnabled, mimeTypes
Frames[]Tableau
dobjets fentre
locationObjet
emplacement
Proprits :Hostname, href, host, hash, port, pathname, search, protocolMthodes : reload(), replace(url)
historyObjet
historique
Proprits : Length
Mthodes : back(), forward(), go(x)
x = nombre (positif ou ngatif) des URL en avant ou en arrire
Proprits : closed, name, onerror, status, ClientInformation, ffscreenBuffering,
copyhistory, directories, height, location, menubar, resizable, scrollbars, toolbar, width,
alwayslowered, alwaysraised, dependent, hotkeys, innerheight, innerwidht, opener,outerheight, outerwidth, screenX, screenY, titlebar, z-lock
Mthodes : open(page, fentre), close(), scroll(x,y), scrollBy(x,y), resizeTo(x,y),
resizeBy(x,y), moveTo(x,y), blur(), moveBy(x,y)Gestionnaires (dans la balise ) : OnBlur, OnError, OnFocus, OnLoad, OnResize,
OnUnload
documentObjet
document
Links []Tableau dobjets
JavaOb ect
Anchors[]Tableau dobjets
ancre
images[]Tableau dobjets
ima e
Applets[]Tableau dobjets
JavaOb ect
Proprits : bgColor, cookie, lastModified, referrer, title, activeElement,all, charset,
children, classes, defaultCharset, domain, expando, fgColor, linkColor, parentWindow,
readyState, URL, vlinkColorMthodes : write(), writeln(), close(), element FromPoint(x,y), open()
Proprit: location
Proprit: name
Mthodes : start(), stop()
Forms[]Tableau dobjets
formulaire
elements[]
Tableau dobjetsElment de formulaire
Proprits : action = "nom_du_script", length, method = "GET/POST",Name = "nom_du_formulaire_recherch", target = "nom_de_la_fentre_cible"
Mthodes : reset(), submit()Gestionnaires : OnSubmit = "instruction/fonction" (si la
fonction retourne FALSE, le formulaire nest pas soumis),
Proprits : voir le tableau au dos de la feuille
Gestionnaires : voir le tableau au dos de la feuille
Proprits : border, complete, hspace, height, lowsrc, name = "nom_de_limage",src= "nom_du_fichier", vspace, width
Proprits : hash, host, hostname, href, pathname, port, protocol, searchGestionnaires : OnClick, OnMouseOut, OnMouseOver
8/8/2019 20917021-Javascript[1]
9/47
Cours Programmation Langage JavaScript javascript.doc
Elment Description Propritset mthodes()
Description Gestion-naires
Description
Button
(*)
Bouton NameValue
Nom du bouton.
Texte figurant sur le
bouton.
OnClick Actionn quand un visiteurclique sur le bouton.
Checkbox
(*)
Case cocher Checked
Name
Value
Vrai quand la case est
coche, prslection de
la case cocher.
Nom de la case cocher.
Valeur de la case
cocher.
OnClick Actionn quand un visiteur
coche la case.
Hidden
(*)
Elment invisible.
contient des
informations masques lutilisateur.
Name
Value
Nom de llment
cach.
Valeur de llment
cach.
Option
texte associ
loption
Option dun lment
select : menu droulant
ou liste droulante.
Toutes les options sont
stockes dans le tableau
options[] associ llment.
Selected
Value
Vrai ou faux selon que
loption a t
slectionne ou non.
Valeur associe
loption.
Radio
(*)
Bouton radio.
Les boutons radioportant le mme nom
forment un groupe etsont placs dans un
tableau de mme nom.
Checked
Name
Value
Vrai quand le bouton
radio est slectionn.
Prslection du bouton
radio.
Nom du bouton radio.
Valeur du bouton radio.
OnClick Actionn quand un visiteur
slectionne le bouton radio.
Reset
(*)
Bouton qui rinitialise
les zones de saisie dun
formulaire.
Name
ValueNom du bouton.
Texte qui saffiche sur
le bouton.
OnClick Actionn quand un visiteurclique sur le bouton reset.
Select
Options
Syntaxe : Menu droulant ou liste
droulante.Son contenu appel
options, est stock dansle tableau options[].
Length
Name
SelectedIndex
Size
Nombre doptions de
llment.
Nom de llmentselect.
Position de lobjet
slectionn dans le
tableau.
Nb de lignes visibles
OnChange Dclench quand un visiteurslectionne ou dslectionne
une option.
Submit
(*)
Bouton de soumission.
Envoie un vnement
onSubmit au formulaire
dans lequel il figure.
NameValue
Nom du bouton.
Texte qui saffiche sur
le bouton.
OnClick Actionn quand un visiteur
clique sur le bouton de
soumissionLe script de ce gestionnaire
sexcute avant le codejavascript figurant
lintrieur dun gestionnaire
onSubmit dans le formulaire.
Text
(*)
Elment de texte.Permet un visiteur de
taper une ligne de texte
dans un formulaire.
Name
Value
Sizeblur()
focus()
select()
Nom de llment de
texte.
Texte qui initialise le
champ de texte.
Taille du champ texte.
Supprime le curseur de
llment text.
Dplace le curseur vers
llment text.
Slectionne le texte
lintrieur du champ text
OnBlur
OnChange
OnFocus
Appel lorsque lutilisateur
retire le curseur de llment
text.
Dclench quand un visiteur
modifie le contenu du champ,
puis clique hors de celui-ci ou
appuie sur Entre.
Appel lorsque lutilisateur
place le curseur dans le
champ texte.
Textarea
Zone de texte.Permet un visiteur detaper plusieurs lignes
de texte dans unformulaire.
Identiques llment textmoins size et +
RowsCols
Nombre de lignes
Nb de caractres / ligne
Identiques llmenttext
ESAT/DMSI/PROA/WGR Page 9 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
10/47
Cours Programmation Langage JavaScript javascript.doc
3 Le concept de variable
Une variable est un objet repr par son nom, pouvant contenir des donnes, qui pourront tre modifies lors de
l'excution du programme.
En Javascript, les noms de variables peuvent tre aussi long que l'on dsire, mais doivent rpondre certains critres:
un nom de variable doit commencer par une lettre (majuscule ou minuscule) ou un "_"
un nom de variables peut comporter des lettres, des chiffres et les caractres _ et & (les espaces ne sont pas
autoriss!) Les noms de variables ne peuvent pas tre les noms suivants (qui sont des noms rservs):
abstract
boolean, break, byte
case, catch, char, class
default, do, double
else, extends
false, final, finally, float
goto
if, implements, import, in, instanceof, int, interface
long
native, new, null
package, private, protected, public
return
short, static, super, switch, synchronized
this, throw, throws, transient, true, try
var, void
while, with
Nom de variable correct Nom de variable incorrect Raison
Variable Nom de Variable comporte des espaces
Nom_De_Variable 123Nom_De_Variable commence par un chiffre
nom_de_variable [email protected] caractre spcial @nom_de_variable_123 Nom-de-variable signe - interdit
_707 transient nom rserv
Les noms de variables sont sensibles la casse (le Javascript fait la diffrence entre un nom en majuscule et un nom
en minuscule), il faut donc veiller utiliser des noms comportant la mme casse!
3.1 La dclaration de variables
Le Javascript tant trs souple au niveau de l'criture ( double tranchant car il laisse passer des erreurs...), la
dclaration des variables peut se faire de deux faons:
soit de faon explicite, en faisant prcder la variable du mot cl varqui permet d'indiquer de faon rigoureuse
qu'il s'agit d'une variable:
var chaine= "bonjour" soit de faon implicite, en crivant directement le nom de la variable suivie du caractre = et de la valeur
affecter:
chaine= "bonjour"
Le navigateur dtermine seul qu'il s'agit d'une dclaration de variable.
Mme si une dclaration implicite est tout fait reconnue par le navigateur, il est tout de mme plus rigoureux de
dclarer les variables de faon explicite avec le mot var...
ESAT/DMSI/PROA/WGR Page 10 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
11/47
Cours Programmation Langage JavaScript javascript.doc
3.2 Porte (visibilit) des variables
Selon l'endroit o on dclare une variable, celle-ci pourra tre accessible (visible) de partout dans le script ou bien que
dans une portion confine du code, on parle de "porte" d'une variable.
Lorsqu'une variable est dclare sans le mot cl var, c'est--dire de faon implicite, elle est accessible de partout dansle script (n'importe quelle fonction du script peut faire appel cette variable). On parle alors de variable globale
Lorsque l'on dclare de faon explicite une variable en javascript (en prcdant sa dclaration avec le mot var), saporte dpend de l'endroit o elle est dclare.
Une variable dclare au dbut du script, c'est--dire avant toute fonction sera globale, on pourra alors
lutiliser partir de n'importe quel endroit dans le script
Une variable dclare par le mot cl vardans une fonction aura une porte limite cette seule fonction, c'est--dire qu'elle est inutilisable ailleurs, on parle alors de variable locale
3.3 Les types de donnes dans les variables
En Javascript il n'y a pas besoin de dclarer le type des variables que l'on utilise, contrairement des langages volustels que le langage C ou le Java pour lesquels il faut prciser s'il s'agit d'entiers ( int), de nombres virgule flottante
(float), de caractres (char), ...
En fait le Javascript n'autorise la manipulation que de 4 types de donnes:
des nombres: entiers ou virgules
des chanes de caractres(string): une suite de caractres
des boolens (boolean) : des variables deux tats permettant de vrifier une condition
true: si le rsultat est vrai
false: lors d'un rsultat faux
des variables de type null: un mot caractristique pour indiquer qu'il n'y a pas de donnes
3.3.1 Nombre entier
Un nombre entier est un nombre sans virgule qui peut tre exprim dans diffrentes bases:
Base dcimale: L'entier est reprsent par une suite de chiffre unitaires (de 0 9) ne devant pas commencer
par le chiffre 0
Base hexadcimale: L'entier est reprsent par une suite d'units (de 0 9 ou de A F (ou a f)) devant
commencer par0x ou 0X
Base octale: L'entier est reprsent par une suite d'units (incluant uniquement des chiffres de 0 7) devant
commencer par0
3.3.2 Nombre virgule flottante (rel)Un nombre virgule flottante est un nombre virgule, il peut toutefois tre reprsent de diffrentes faons:
un entier dcimal: 895
un nombre comportant un point (et non une virgule): 845.32
une fraction: 27/11
un nombre exponentiel, c'est--dire un nombre (ventuellement virgule) suivi de la lettre e (ouE), puis d'unentier correspondant la puissance de 10 (sign ou non, c'est--dire prcd d'un + ou d'un -)
2.75e-2
35.8E+10.25e-2
ESAT/DMSI/PROA/WGR Page 11 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
12/47
Cours Programmation Langage JavaScript javascript.doc
3.3.3 Chane de caractres
Une chane de caractres est, comme son nom l'indique, une suite de caractres. On la reprsente par la suite de
caractres encadre par des guillemets simples (') ou doubles ("), sachant que les deux types de guillemets ne peuvent
tre mlangs pour une mme chane de caractres, ce qui signifie que les guillemets dans une chane de caractres
existent par paire.
Il existe des caractres spciaux utiliser dans les chanes pour simuler d'une part des caractres non visuels ou pour
viter au navigateur de confondre les caractres d'une chane avec ceux du script, ces caractres sont prcds d'unantislash (\):
\b : touche de suppression
\f : formulaire plein
\n : retour la ligne
\r : appui sur la toucheENTREE
\t : tabulation
\" : guillemets doubles
\' : guillemets simples
\\ : caractre antislash
Ainsi, si on veut stocker la chane suivante dans la variable Titre:Qu'y a-t'il dans "c:\windows\"
Il faudra crire dans le code Javascript:
Titre = "Qu\'y a-t\'il dans \"c:\\windows\\\"";
ou
Titre = 'Qu\'y a-t\'il dans \"c:\\windows\\\"';
3.3.4 Boolen
Un boolen est une variable spciale servant valuer une condition, il peut donc avoir deux valeurs: vrai: reprsent par 1
faux: reprsent par 0
3.4 Les particularits de l'objet String
string est un mot anglais qui signifie "chane", il s'agit en fait de chane de caractres. C'est donc une suite decaractres, on la reprsente gnralement par un ensemble de caractres encadr par des guillemets. La longueur
maximale d'une telle chane est priori comprise entre 50 et 80 caractres.
L'objet Stringest un objet qui contient un certain nombre de proprits et de mthodes permettant la manipulation de
chanes de caractres.
3.5 Les proprits de l'objet String
L'objetstringa une seule proprit : la proprit length qui permet de retourner la longueur d'une chane de caractres.Cette proprit est trs utile car lorsque l'on traite une chane de caractres on aime gnralement savoir quel
moment s'arrter.
La syntaxe de la proprit length est la suivante:
x = nom_de_la_chaine.length;
x = ('chaine de caracteres').length;
On peut donc directement passer la chane de caractres comme objet, en dlimitant la chane par des apostrophes et
en plaant le tout entre parenthses.
La mthode traditionnelle consistant appliquer une proprit une variable de type string fonctionne bienvidemment aussi.
ESAT/DMSI/PROA/WGR Page 12 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
13/47
Cours Programmation Langage JavaScript javascript.doc
3.6 Les mthodes de l'objet String
Les mthodes de l'objetstringpermettent de rcuprer une portion d'une chane de caractres, ou bien de la modifier.Pour comprendre les mthodes suivantes, il est tout d'abord ncessaire de comprendre comment est stocke une chane
de caractres:
Il s'agit en fait d'une sorte de tableau constitu de n caractres (n est donc le nombre de caractres), on note 0 laposition du premier caractre (celui l'extrme gauche), puis on les compte de gauche droite en incrmentant ce
nombre:
Chane C o m m e n t a m a r c h e ?
Position des caractres 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Comme on peut le voir, une chane ayant n caractres aura son dernier caractre en position n-1 (ici, pour une chanede 18 caractres le dernier lment est la position 17...).
Le tableau suivant dcrit les mthodes de l'objetstring.
Mthode description
charAt(chane, position)
ou
chane.charAt(position)Retourne le caractre situ la position donne en paramtre
indexOf(sous-chane, position)
Retourne la position d'une sous-chane (lettre ou groupe de lettres) dans une chane
de caractres, en effectuant la recherche de gauche droite, partir de la position
spcifie en paramtre.
lastIndexOf(sous-chane,
position)
La mthode est similaire indexOf(), la diffrence que la recherche se fait de droite gauche:
Retourne la position d'une sous-chane (lettre ou groupe de lettres) dans une chane
de caractres, en effectuant la recherche de droite gauche, partir de la position
spcifie en paramtre.
substring(position1, position2)La mthode retourne la sous-chane (lettre ou groupe de lettres) comprise entre les
positions 1 et 2 donnes en paramtre.
toLowerCase() Convertit tous les caractres d'une chane en minuscule
toUpperCase() Convertit tous les caractres d'une chane en majuscule
D'autres mthodes :
Mthode description
anchor(nom_a_donner) Transforme le texte en ancrage HTML
big() Augmente la taille de la police
blink() Transforme la chane en texte clignotant
bold() Met le texte en gras (balise )
fixed Transforme le texte en police fixe (balise )
fontcolor(couleur)Modifie la couleur du texte (admet comme argument la couleur en hexadcimal ou en
valeur littrale)
fontsize(Size) Modifie la taille de la police, en affectant la valeur passe en paramtre
italics() Transforme le texte en italique (balise )
link(URL) Transforme le texte en hypertexte (balise )
small() Diminue la taille de la police
strike() Transforme le texte en texte barr (balise )
sub() Transforme le texte en indice (balise )
sup() Transforme le texte en exposant (balise )
ESAT/DMSI/PROA/WGR Page 13 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
14/47
Cours Programmation Langage JavaScript javascript.doc
3.7 Exemples d'utilisation des mthodes de l'objet String
3.7.1 Mthode charAt()
Il existe deux syntaxes pour la mthode charAt()
chaine = "chaine de caractres";
Resultat = chaine.charAt(position);
Resultat = charAt("chaine de caractres", position);
Le paramtreposition est un entier qui reprsente la position du caractre rcuprer, il doit tre compris entre O et n-1 (o n reprsente la longueur de la chane). Dans le cas contraire (le paramtre position ngatif ou suprieur ou gal
la longueur) charAt() renvoie une chane de longueur nulle.Voici quelques exemples:
Chaine = 'Comment a marche?' var Resultat = charAt(Chaine,0)
donne 'C'
var Resultat = charAt("Comment a marche?", 1)
donne 'o'
var Resultat = Chaine.charAt(17)donne '?'
var Resultat = ("Comment a marche?").charAt(18)
donne ""
var Resultat = charAt(Chaine, -1)
donne ""
3.7.2 Mthode indexOf()
La mthode indexOf() permet de rechercher (de gauche droite) la position d'une sous-chane dans une chane de
caractres.
Chaine = "chaine de caractres";Sous-Chaine = "sous-chane de caractres";
Resultat = x.indexOf(position);
La position indique en argument permet de dterminer la position du caractre partir duquel la recherche est
effectue. L'argument position doit tre compris entre 0 et n-1. Si cet argument est omis la recherche dbutera laposition 0.
Lorsque la recherche est infructueuse, la mthode indexOf() renvoie la valeur -1.Voici quelques exemples:
Chaine = 'Comment a marche?'Sous_Chaine = 'mar'
var Resultat = Chaine.indexOf(Sous_Chaine, 6)donne '11'
var Resultat = Chaine.indexOf(Sous_Chaine)donne '11'
var Resultat = Chaine.indexOf(Sous_Chaine, 11)donne '11'
var Resultat = Chaine.indexOf(Sous_Chaine, 12)donne '-1'
var Resultat = Chaine.indexOf(Sous_Chaine, -1)donne "-1"
var Resultat = Chaine.indexOf(Sous_Chaine, 15)donne "-1"
var Resultat = Chaine.indexOf(Sous_Chaine, 19)donne "-1"
ESAT/DMSI/PROA/WGR Page 14 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
15/47
Cours Programmation Langage JavaScript javascript.doc
3.7.3 Mthode lastIndexOf()
La mthode lastIndexOf() permet de rechercher (de droite gauche) la position d'une sous-chane dans une chane decaractres.
Chaine = "chane de caractres";
Sous_Chaine = "sous-chane de caractres";
Resultat = Chaine.lastIndexOf(Sous_Chaine,position);
La position indique en argument permet de dterminer la position du caractre partir duquel la recherche est
effectue (vers la gauche pour cette mthode). L'argumentposition doit tre compris entre 0 et n-1. Si cet argument estomis la recherche dbutera partir de la fin de la chane.
Lorsque la recherche est infructueuse, la mthode lastIndexOf() renvoie la valeur -1.Voici quelques exemples:
Chaine = 'Comment a marche?'Sous_Chaine = 'mar'
var Resultat = Chaine.lastIndexOf(Sous_Chaine, 6)donne '-1'
var Resultat = Chaine.lastIndexOf(Sous_Chaine)
donne '11'
var Resultat = Chaine.lastIndexOf(Sous_Chaine, 11)donne '11'
var Resultat = Chaine.lastIndexOf(Sous_Chaine, 12)donne '11'
var Resultat = Chaine.lastIndexOf(Sous_Chaine, -1)donne "-1"
var Resultat = Chaine.lastIndexOf(Sous_Chaine, 19)donne "-1"
3.7.4 Mthode substring()
La mthodesubstring() permet de rcuprer une sous-chane dans une chane de caractres en prcisant en paramtresles positions des caractres entre lesquels la sous-chane doit tre rcupre.
Chaine = "chaine de caractres";
Resultat = Chaine.substring(position1, position2);
Les positions indiques en argument permettent de dterminer les positions des caractres entre lesquels la sous-chane
doit tre rcupre. Les argumentsposition1 etposition2 doivent tre compris entre 0 et n-1.
Si l'argumentposition1 est plus petit que l'argument position2, la mthodesubstring() retourne la sous-chanecommenant la position 1 et s'arrtant au caractre situ avant position 2
Si l'argumentposition1 est plus grand que l'argumentposition2, la mthodesubstring() retourne la sous-chane
commenant la position 2 et s'arrtant au caractre situ avant position 1
Si l'argumentposition1 est gal l'argumentposition2, la mthodesubstring() retourne une chane vide
Voici quelques exemples:
Chaine = 'Comment a marche?' var Resultat = Chaine.substring(1,5)
donne 'omme'
var Resultat = Chaine.substring(6,6)donne ''
var Resultat = Chaine.substring(8,2)donne 'mment '
ESAT/DMSI/PROA/WGR Page 15 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
16/47
Cours Programmation Langage JavaScript javascript.doc
3.7.5 MthodestoLowerCase() et toUpperCase()
La mthode toLowerCase() permet de convertir toutes les lettres d'une chane en minuscules, les autres caractres sontlaisss tels quels.
Exemple :
Chaine = 'Comment a Marche?'var Resultat = Chaine.toLowerCase
donne 'comment a marche?'
La mthode toUpperCase() permet de convertir toutes les lettres d'une chane en majuscules, les autres caractres sontlaisss tels quels.
Exemple :
Chaine = 'Comment a Marche?'var Resultat = Chaine.toUpperCasedonne 'COMMENT A MARCHE?'
ESAT/DMSI/PROA/WGR Page 16 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
17/47
Cours Programmation Langage JavaScript javascript.doc
4 Les vnements
Les vnements sont des actions de l'utilisateur, qui vont pouvoir donner lieu une interactivit.
L'vnement par excellence est le clic de souris, car c'est le seul que le HTML gre. Grce au Javascript il est possible
d'associer des fonctions, des mthodes des vnements tels que le passage de la souris au-dessus d'une zone, le
changement d'une valeur, ...
Ce sont les gestionnaires d'vnements qui permettent d'associer une action un vnement.
La syntaxe d'un gestionnaire d'vnement est la suivante:onEvenemen t= "Action_Javascript_ou_Fonction();"Les gestionnaires d'vnements sont associs des objets, et leur code s'insre dans la balise de ceux-ci...
4.1 Liste des vnements
Evnement
(gestionnaire
d'vnement)
Description
Click
(onClick) Se produit lorsque l'utilisateur clique sur l'lment associ l'vnementLoad(onLoad)
Se produit lorsque le navigateur de l'utilisateur charge la page en cours
Unload(onUnload)
Se produit lorsque le navigateur de l'utilisateur quitte la page en cours
MouseOver(onMouseOver)
Se produit lorsque l'utilisateur positionne le curseur de la souris au-dessus d'un lment
MouseOut(onMouseOut)
Se produit lorsque le curseur de la souris quitte un lment
Cet vnement fait partie du Javascript 1.1
Focus(onFocus)
Se produit lorsque l'utilisateur donne la focalisation un lment, c'est--dire que cet
lment est slectionn comme tant l'lment actif
Blur(onBlur)
Se produit lorsque l'lment perd la focalisation, c'est--dire que l'utilisateur clique hors decet lment, celui-ci n'est alors plus slectionn comme tant l'lment actif
Change(onChange)
Se produit lorsque l'utilisateur modifie le contenu d'un champ de donnes
Select(onSelect)
Se produit lorsque l'utilisateur slectionne un texte (ou une partie d'un texte) dans un champ
de type "text" ou "textarea"
Submit(onSubmit)
Se produit lorsque l'utilisateur clique sur le bouton de soumission d'un formulaire (le bouton
qui permet d'envoyer le formulaire)
ESAT/DMSI/PROA/WGR Page 17 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
18/47
Cours Programmation Langage JavaScript javascript.doc
4.2 Objets auxquels on peut associer des vnements
Chaque vnement ne peut pas tre associ n'importe quel objet. Il est vident qu'un vnement OnChange ne peutpas s'appliquer un lien hypertexte...
Objet Evnements associablesLien hypertexte onClick, onMouseOver, onMouseOut
Page du navigateur onLoad, onUnload
Bouton, Case cocher, Bouton radio, Bouton Reset onClick
Liste de slection d'un formulaire onBlur, onChange, onFocus
Bouton Submit onSubmit
Champ de texte et zone de texte onBlur, onChange, onFocus, onSelect
4.3 Quelques exemples d'vnements
4.3.1 Ouverture d'une bote de dialogue lors d'un click
Le code correspondant une bote de dialogue est trs simple:
window.alert("Votre Texte");
Il s'agit donc de le mettre dans la balise d'un lien hypertexte:
Exemple :
Ouverture d'une boite de dialogue lors d'un click
Cliquez ici!
Analyse du script :
le gestionnaire d'vnement onClicka t insr dans la balise de lien hypertexte
8/8/2019 20917021-Javascript[1]
19/47
Cours Programmation Langage JavaScript javascript.doc
4.3.2 Modification d'une image lors du survol d'un lien par le pointeur de la souris
Il peut tre agrable de jouer avec le gestionnaire OnMouseOverpour crer un menu interactif qui se modifie aupassage de la souris. On peut mme ajouter le gestionnaire OnMouseOutpour rtablir l'image originale lorsque lecurseur quitte l'image (Rappel: Son utilisation est limite aux navigateurs supportant javascript 1.1 et suprieur!).
Exemple :
Modification d'une image lors du passage de la souris
Analyse du script :
Pour pouvoir associer un vnement une image il faut que celle-ci soit considre comme un lien, ainsi on
place la balise entre les balises et
document.Img_1 est le nom du champ image du formulaire, et src est lattribut correspondant au fichier
charger.
Au chargement de la page, le fichier mentionn dans lattribut scr de la balise est charg(image1.gif).
Lorsque la souris passe sur limage (onMouseOver) cest le fichierimage2.gifqui est charg. Lorsque la souris quitte limage (onMouseOut) cest le fichierimage1.gifqui est charg
Lexemple suivant est similaire au prcdent, seulement cette fois ci, le fait de cliquer sur limage entrane le
chargement de la page fichier_cible.htm:
ESAT/DMSI/PROA/WGR Page 19 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
20/47
Cours Programmation Langage JavaScript javascript.doc
5 Les oprateurs
Les oprateurs sont des symboles qui permettent de manipuler des variables, c'est--dire effectuer des oprations, les
valuer,
On distingue plusieurs types d'oprateurs:
les oprateurs de calcul
les oprateurs d'assignation les oprateurs d'incrmentation
les oprateurs de comparaison
les oprateurs logiques
les oprateurs bit--bit (bitwise)
les oprateurs de rotation de bit
5.1 Les oprateurs de calcul
Les oprateurs de calcul permettent de modifier mathmatiquement la valeur d'une variable
Oprateur Dnomination Effet Exemple Rsultat (avec x valant 7)
+ oprateur d'addition Ajoute deux valeurs x+3 10
-oprateur de
soustractionSoustrait deux valeurs x-3 4
*oprateur de
multiplicationMultiplie deux valeurs x*3 21
/plus: oprateur de
divisionDivise deux valeurs x/3 2.3333333
= oprateur d'affectation Affecte une valeur une variable x=3 Met la valeur 3 dans la variable x
5.2 Les oprateurs d'assignation
Ces oprateurs permettent de simplifier des oprations telles que ajouter une valeur dans une variable et stocker le
rsultat dans la variable. Une telle opration s'crirait habituellement de la faon suivante par exemple:x=x+2Avec les oprateurs d'assignation il est possible d'crire cette opration sous la forme suivante:x+=2Ainsi, si la valeur de x tait 7 avant opration, elle sera de 9 aprs...
Les autres oprateurs du mme type sont les suivants:
Oprateur Effet
+= additionne deux valeurs et stocke le rsultat dans la variable ( gauche)
-= soustrait deux valeurs et stocke le rsultat dans la variable*= multiplie deux valeurs et stocke le rsultat dans la variable
/= divise deux valeurs et stocke le rsultat dans la variable
ESAT/DMSI/PROA/WGR Page 20 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
21/47
Cours Programmation Langage JavaScript javascript.doc
5.3 Les oprateurs d'incrmentation
Ce type d'oprateur permet de facilement augmenter ou diminuer d'une unit une variable. Ces oprateurs sont trs
utiles pour des structures telles que des boucles, qui ont besoin d'un compteur (variable qui augmente de un en un).
Un oprateur de typex++ permet de remplacer des notations lourdes telles quex=x+1 ou bienx+=1
Oprateur Dnomination Effet Syntaxe Rsultat (avec x valant 7)
++ Incrmentation Augmente d'une unit la variable x++ 8
-- Dcrmentation Diminue d'une unit la variable x-- 6
x++ est une post-incrmentation. Cela signifie que lors de lvaluation dune expression arithmtique, lincrmentation
de x sera ralise aprs lexpression proprement dite.Exemple :
x = 7 ;
a = 2 + x++ ; // quivaut : a = 2 + x; puis x = x + 1; a vaut 9 et x vaut 8
++x est une pr-incrmentation. Cela signifie que lors de lvaluation dune expression arithmtique, lincrmentation
de x sera ralise avant lexpression proprement dite.
Exemple :x = 7 ;
a = ++x + 2; // quivaut : x = x + 1; puis a = x + 2; a vaut 10 et x vaut 8
( les oprations sont ralises dans cet ordre quelque soit la position de x dans lexpression )
5.4 Les oprateurs de comparaison
Oprateur Dnomination Effet Exemple Rsultat
==
A ne pas confondre avec
le signe d'affectation (=)!!
oprateur
d'galit
Compare deux valeurs et vrifie leur
galitX == 3
Retourne 1 si X est gal
3, sinon 0
1 (0110 >> 1) 3 (0011)
>>>Rotation droite avec
remplissage de zros
Dcale les bits vers la droite (divise par 2
chaque dcalage). Les zros qui sortent droite
sont perdus, tandis que des zros sont insrs
gauche
6 >>> 1 (0110 >>> 1) 3 (0011)
ESAT/DMSI/PROA/WGR Page 22 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
23/47
Cours Programmation Langage JavaScript javascript.doc
5.8 Les priorits
Lorsque l'on associe plusieurs oprateurs, il faut que le navigateur sache dans quel ordre les traiter, voici donc dans
l'ordre dcroissant les priorits de tous les oprateurs:
() []
-- ++ ! ~ -
* / %
+ -
< = >
== !=
^
|
&& ||
? :
= += -= *= /= %= = >>>= &= ^= |=
,
ESAT/DMSI/PROA/WGR Page 23 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
24/47
Cours Programmation Langage JavaScript javascript.doc
6 Les structures de contrle
Les structures de contrle alternatives (ou conditionnelles) et itratives (ou rptitives) ncessitent lusage dun test
spcifique appel condition. La condition est une expression dont le rsultat de son valuation prend toujours sesvaleurs dans lensemble des boolens (true ou false).
6.1 Les structures alternatives (ou conditionnelles)On appellestructure alternative ou conditionnelle lensemble des instructions (le traitement) qui sont ralises si une
condition est vraie ou non. Les structures conditionnelles ncessitent lusage dun test appel condition.
6.1.1 L'instruction if
L'instruction if est la structure de test la plus basique, on la retrouve dans tous les langages (avec une syntaxe
diffrente...). Elle permet d'excuter une srie d'instructions si jamais une condition est ralise (condition vraie).
La syntaxe de cette expression est la suivante:
if (condition)
{liste d'instructions
}
Remarques :
la condition doit tre entre des parenthses
il est possible de dfinir plusieurs conditions remplir avec les oprateurs ET et OU (&& et ||)
Exemples :
if ((condition1 )&& (condition2)) teste si les deux conditions sont vraies
if ((condition1) || (condition2)) excutera les instructions si l'une ou l'autre des deux conditions est
vraie
s'il n'y a qu'une instruction, les accolades ne sont pas ncessaires.
6.1.2 L'instruction if ... else
L'instruction ifdans sa forme basique ne permet de tester qu'un tat de la condition (condition vraie), or la plupart du
temps on aimerait pouvoir choisir les instructions excuter en cas de non ralisation de la condition. (condition
fausse).
L'expression if ... else permet d'excuter une autre srie d'instructions en cas de non ralisation de la condition.La syntaxe de cette expression est la suivante:
if (condition)
{
liste d'instructions // si la condition est ralise (vraie)}
else
{
autre srie d'instructions // si la condition nest pas ralise (fausse)
}
6.1.3 loprateur ternaire (une faon plus courte de faire un test )
Il est possible de faire un test avec une structure beaucoup moins lourde grce la structure suivante:
(condition) ? instruction si condition vraie : instruction si condition fausse ;
Remarques :
la condition doit tre entre parenthses
Lorsque la condition est vraie, l'instruction gauche des : est excute
Lorsque la condition est fausse, l'instruction droite des : est excute
ESAT/DMSI/PROA/WGR Page 24 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
25/47
Cours Programmation Langage JavaScript javascript.doc
6.2 Les structures itratives (ou rptitives : les boucles)
Les boucles sont des structures qui permettent d'excuter plusieurs fois la mme srie d'instructions jusqu' ce qu'une
condition ne soit plus ralise.
La faon la plus commune de faire une boucle, est de crer un compteur (une variable qui s'incrmente, c'est--dire qui
augmente de 1 chaque tour de boucle) et de faire arrter la boucle lorsque le compteur dpasse une certaine valeur.
6.2.1 Linstruction for
L'instructionforpermet d'excuter plusieurs fois la mme srie d'instructions: c'est une boucle!Dans sa syntaxe, il suffit de prciser le nom de la variable qui sert de compteur (et ventuellement sa valeur de dpart,
la condition sur la variable pour laquelle la boucle s'arrte (basiquement une condition qui teste si la valeur du
compteur dpasse une limite) et enfin une instruction qui incrmente (ou dcrmente) le compteur.
La syntaxe de cette expression est la suivante:
for (initialisation du compteur; condition; modification du compteur)
{
liste d'instructions
}
Lordre dvaluation (excution) des expressions est la suivante :
1) initialisation du compteur ; 2) condition ; 3) liste dinstructions ; 4) modification du compteur.
Exemple :
for ( i = 1 ; i < 6 ; i++ )
{
Alert( i ) ;
}
Cette boucle affiche 5 fois la valeur de i, c'est--dire 1,2,3,4,5Elle commence i = 1, vrifie que i est bien infrieur 6, etc... jusqu' atteindre la valeur i = 6, pour laquelle la
condition ne sera plus ralise, la boucle s'interrompra et le programme continuera son cours.
il faudra toujours vrifier que la boucle a bien une condition de sortie et que le compteur s'incrmente
correctement.
une instructionAlert(i); dans votre boucle est un bon moyen pour vrifier la valeur du compteur pas pas!
il faut bien compter le nombre de fois que l'on veut faire excuter la boucle:
for(i=0;i
8/8/2019 20917021-Javascript[1]
26/47
Cours Programmation Langage JavaScript javascript.doc
6.3 Linstruction continue (saut inconditionnel)
Il peut tre ncessaire de faire sauter de la boucle une ou plusieurs valeurs sans pour autant mettre fin celle-ci.
La syntaxe de cette expression est "continue;" (cette instruction se place dans une boucle!), on l'associe gnralement une structure conditionnelle, sinon les lignes situes entre cette instruction et la fin de la boucle seraient obsoltes.
Exemple :
Imaginons que l'on veuille imprimer pour x allant de 1 10 la valeur de 1/(x-7) ... il est vident que pour x = 7 il y
aura une erreur. Heureusement, grce l'instruction continue il est possible de traiter cette valeur part puis de
continuer la boucle!x = 1;
while ( x
8/8/2019 20917021-Javascript[1]
27/47
Cours Programmation Langage JavaScript javascript.doc
7 Les fonctions
On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de lafonction dans le corps du programme principal. Cette notion de sous-programme est gnralement appele fonction ou
procdure dans les langages autres que le Javascript (toutefois leur syntaxe est gnralement diffrente...).
Les fonctions permettent d'excuter dans plusieurs parties du programme une srie d'instructions, cela permet une
simplicit du code et donc une taille de programme minimale. D'autre part, une fonction peut faire appel elle-mme,
on parle alors de fonction rcursive (il ne faut pas oublier de mettre une condition de sortie au risque sinon de ne pas
pouvoir arrter le programme).
Javascript contient des fonctions prdfinies qui peuvent s'appliquer pour un ou plusieurs types d'objets spcifiques, on
appelle ces fonctions des mthodes.
7.1 La dclaration d'une fonction
Avant d'tre utilise, une fonction doit tre dfinie car pour l'appeler dans le corps du programme il faut que le
navigateur la connaisse, c'est--dire qu'il connaisse son nom, ses arguments et les instructions qu'elle contient. La
dfinition d'une fonction s'appelle "dclaration". La dclaration d'une fonction se fait grce au mot cl function selonla syntaxe suivante:
function Nom_De_La_Fonction(argument1, argument2, ...){
liste d'instructions
}
Remarques :
le mot clfunction est suivi du nom que l'on donne la fonction
le nom de la fonction suit les mmes rgles que les noms de variables:
- le nom doit commencer par une lettre
- un nom de fonction peut comporter des lettres, des chiffres et les caractres _ et & (les espaces ne sont pas
autoriss!)
- le nom de la fonction, comme celui des variables est sensible la casse (diffrenciation entre les
minuscules et majuscules)
Les arguments sont facultatifs, mais s'il n'y a pas d'arguments, les parenthses doivent rester prsentes
Il ne faut pas oublier de refermer les accolades
Le nombre d'accolades ouvertes (fonction, boucles et autres structures) doit tre gal au nombre de
parenthses fermes!
La mme chose s'applique pour les parenthses, les crochets ou les guillemets!
Une fois cette tape franchie, votre fonction ne s'excutera pas tant que l'on ne fait pas appel elle quelque part dans la
page!
ESAT/DMSI/PROA/WGR Page 27 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
28/47
Cours Programmation Langage JavaScript javascript.doc
7.2 Appel de fonction
Pour excuter une fonction, il suffit de faire appel elle en crivant son nom (une fois de plus en respectant la casse)
suivie d'une parenthse ouverte (ventuellement des arguments) puis d'une parenthse ferme:
Nom_De_La_Fonction();
Remarques :
le point virgule signifie la fin d'une instruction et permet au navigateur de distinguer les diffrents blocs
d'instructions
si jamais vous avez dfini des arguments dans la dclaration de la fonction, il faudra veiller les inclure lors
de l'appel de la fonction (le mme nombre d'arguments spars par des virgules!)
Veillez toujours ce qu'une fonction soit dclare avant d'tre appele, sachant que le navigateur traite la page de
haut en bas (Pour viter des erreurs de ce type on dclare gnralement les fonctions dans des balises SCRIPT situes
dans l'en-tte de la page, c'est--dire entre les balises et )
Grce au gestionnaire d'vnement onLoad( placer dans la balise BODY) il est possible d'excuter une fonction auchargement de la page, comme par exemple l'initialisation des variables pour votre script, et/ou le test du navigateur
pour savoir si celui-ci est apte faire fonctionner le script.Il s'utilise de la manire suivante :
function Chargement()
{
alert('Bienvenue sur le site');
}
Ceci est ma premire page HTML !
Rsultat obtenu :
ESAT/DMSI/PROA/WGR Page 28 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
29/47
Cours Programmation Langage JavaScript javascript.doc
7.3 Les paramtres dune fonction
Il est possible de passer des paramtres une fonction, c'est--dire lui fournir une valeur ou le nom d'une variable afin
que la fonction puisse effectuer des oprations sur ces paramtres ou bien grce ces paramtres.
Lorsque vous passez plusieurs paramtres une fonction il faut les sparer par des virgules, aussi bien dans la
dclaration que dans l'appel et il faudra veiller bien passer le bon nombre de paramtres lors de l'appel au risque
sinon de crer une erreur dans votre Javascript...
Imaginons que l'on veuille crer une page Web qui affiche une bote de dialogue (les botes de dialogues sont viterdans vos pages car elles sont nervantes, mais c'est toutefois une manire simple d'apprendre le Javascript) qui affiche
un texte diffrent selon le lien sur lequel on clique.
La mthode de base consiste faire une fonction pour chaque texte afficher:
function Affiche1()
{
alert('Texte 1');
}
function Affiche2()
{
alert('Texte 2');
}
Texte1
Texte2
Il existe toutefois une mthode plus judicieuse qui consiste crer une fonction qui a comme paramtre le texte
afficher:
function Affiche(Texte)
{
alert(Texte);
}
Texte1
Texte2
Rsultat:Aucune diffrence visuellement mais vous n'avez plus qu'une seule fonction qui permet dafficher n'importe quel
texte...
ESAT/DMSI/PROA/WGR Page 29 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
30/47
Cours Programmation Langage JavaScript javascript.doc
7.4 Travailler sur des variables dans les fonctions
Lorsque vous manipulerez des variables dans des fonctions, il vous arrivera de constater que vous avez beau modifier
la variable dans la fonction celle-ci retrouve sa valeur d'origine ds que l'on sort de la fonction...
Cela est du la porte des variables, c'est--dire si elles ont t dfinies comme variables globales ou locales.
Une variable dclare implicitement (non prcde du mot var) sera globale , c'est--dire accessible aprs
excution de la fonction
Une variable dclare explicitement (prcde du mot var) sera locale , c'est--dire accessible uniquementdans la fonction, toute rfrence cette variable hors de la fonction provoquera une erreur (variable inconnue).
7.5 Le mot cl this
Lorsque vous fates appel une fonction partir d'un objet, par exemple un formulaire, le mot cl this fait rfrence l'objet en cours et vous vite d'avoir dfinir l'objet en le nommant explicitement (window.objet1.objet2....).Pour manipuler les proprits de l'objet il suffira de taper this.propriete (opropriete reprsente bien sr le nom de la
proprit).
ESAT/DMSI/PROA/WGR Page 30 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
31/47
Cours Programmation Langage JavaScript javascript.doc
8 Les objets
Les navigateurs ont leurs propres objets avec leurs proprits respectives. Il est toutefois possible de crer ses propres
objets avec les proprits qu'on leur dfinit.
Imaginons que l'on veuille par exemple crer un objetArbre avec ses proprits :
type
taille
age
Il est possible de crer l'objetArbre en crant une fonction dont le nom est Arbre et qui dfinit les proprits de l'objet
en cours grce au mot cl this, en passant en paramtre chacune des proprits :function Arbre(arg_Type, arg_Taille, arg_Age)
{
this.Type = arg_Type;this.Taille = arg_Taille;this.Age = arg_Age;
}
Grce au mot cl new, il va tre possible de crer des instances de l'objet Arbre (c'est--dire des objets possdant lesproprits de l'objetArbre) :Arbre1 = new Arbre("peuplier", 14, 20);
Il est alors possible de trouver le type de larbre :
alert(Arbre1.Type) ;
Ou de modifier sa taille :
Arbre1.Taille = 15 ;
On peut ainsi crer autant d'instances que l'on dsire.
Il est en plus possible d'ajouter un objet existant en tant que proprit d'un autre objet. Imaginons que vous criez un
objetProprietaire :function Proprietaire(arg_Nom, arg_Prenom)
{
this.Nom = arg_Nom;this.Prenom = arg_Prenom;
}
Dfinissons maintenant l'objetArbre comme suit :function Arbre(arg_Type, arg_Taille, arg_Age, arg_Proprio)
{
this.Type = arg_Type;this.Taille = arg_Taille;this.Age = arg_Age;this.Proprio = arg_Proprio; // cette proprit deviendra un objet lors de la cration de l instance Arbre1
// car le paramtre transmis est un objet instanci
}
Cration de l'instanceProprio1Proprio1 = new Proprietaire("DUPONT","Ren");
Cration de l'instanceArbre1Arbre1 = new Arbre("tilleul","20","100",Proprio1) ;
ESAT/DMSI/PROA/WGR Page 31 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
32/47
Cours Programmation Langage JavaScript javascript.doc
8.1 Les mthodes
Une mthode est une fonction associe un objet, c'est--dire une action que l'on peut faire excuter un objet.
Les mthodes des objets du navigateur sont des fonctions dfinies l'avance par les normes HTML, on ne peut donc
pas les modifier, il est toutefois possible de crer une mthode personnelle pour un objet que l'on a cr soi-mme.
Prenons par exemple une page HTML, elle est compose d'un objet appel document.
L'objet documenta par exemple la mthode write() qui lui est associe et qui permet de modifier le contenu de la page
HTML en affichant du texte. Une mthode s'appelle un peu comme une proprit, c'est--dire de la manire suivante:window.objet.methode();
Dans le cas de la mthode write(), l'appel se fait comme suit:
window.document.write();
8.1.1 La mthode write()
La mthode write() de l'objet documentpermet de modifier de faon dynamique le contenu d'une page HTML, on peutl'utiliser de diffrentes faons:
soit en passant directement le texte en paramtres :
document.write("bonjour");qui aura pour effet de concatner la chane 'bonjour' l'endroit o est plac le script
soit en passant le texte par l'intermdiaire d'une variable :
Chaine = 'bonjour';document.write(Chaine);qui aura pour effet de concatner la chane 'bonjour' (contenue dans la variable Chaine) l'endroit o est placle script
soit en utilisant les deux:
Chaine = 'bonjour';document.write('je vous passe le' + Chaine);qui aura pour effet de concatner la chane 'bonjour' (contenue dans la variable Chaine) la suite de la chane
de caractres 'je vous passe le' dans la page HTML
Il est ainsi possible d'utiliser des balises HTML l'intrieur mme de la mthode write:
document.write('Bonjour'); < !couleurrouge
8.1.2 La mthode writeln()
La mthode writeln fonctionne exactement comme la mthode write la seule diffrence qu'elle ajoute un retourchariot la fin de la chane. Or un retour chariot (en HTML) est ignor par le navigateur (Rappel: un retour la ligne
se fait avec la balise
).
Cette mthode n'a donc un avantage que lorsqu'elle est utilise entre les balises et qui formatent letexte comme dans un fichier texte (et donc qui prend en compte le caractre de retour la ligne).
ESAT/DMSI/PROA/WGR Page 32 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
33/47
Cours Programmation Langage JavaScript javascript.doc
8.2 Dfinir une mthode pour un objet
Il est possible de dfinir une mthode pour un type d'objet que l'on a cr en incluant une fonction en tant que
proprit d'un objet. Il suffit pour cela de mentionner le nom de la fonction (sans les parenthses) dans la liste des
paramtres lors de la cration de lobjet.
Reprenons l'exemple de l'arbre :
On dfinit tout d'abord un propritaire :
function Proprietaire(arg_Nom, arg_Prenom)
{
this.Nom = arg_Nom;
this.Prenom = arg_Prenom;}
Puis on dfinit l'objetArbre comme suit :function Arbre(arg_Type, arg_Taille, arg_Age, arg_Proprio, arg_Affiche)
{
this.Type = arg_Type;this.Taille = arg_Taille;
this.Age = arg_Age;this.Proprio = arg_Proprio;this.Affiche = arg_Affiche;
}
Et enfin on cre une fonction qui affiche le nom du propritaire d'un arbre ainsi que quelques caractristiques de celui-
ci :
function AfficheInfos()
{
alert(this.Proprio.Prenom + + this.Proprio.Nom + ' possde un ' + this.Type + de + this.Age + ans);
}
Cration de l'instanceProprio1 avec linitiation des proprits :Proprio1 = new Proprietaire("DUPONT","Ren");
Cration de l'instanceArbre1 avec linitiation des proprits :Arbre1 = new Arbre("tilleul","20","100",Proprio1,AfficheInfos);
Appel de la mthodeAfficheInfos() de l'objetArbre1 :Arbre1.Affiche();
Elle affichera un message dalerte contenant :Ren DUPONT possde un tilleul de 100 ans
Cration de l'instanceProprio2 avec linitiation des proprits :Proprio2 = new Proprietaire("MARTIN","Marcel");
Cration de l'instanceArbre2 avec linitiation des proprits :
Arbre2 = new Arbre("bouleau","20","50",Proprio2,AfficheInfos);
Appel de la mthodeAfficheInfos() de l'objetArbre2 :Arbre2.Affiche();
Elle affichera un message dalerte contenant : Marcel MARTIN possde un bouleau de 50 ans
ESAT/DMSI/PROA/WGR Page 33 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
34/47
Cours Programmation Langage JavaScript javascript.doc
8.3 Prsentation des objets du navigateur
Lorsque vous ouvrez une page Web, le navigateur cre des objets prdfinis correspondant la page Web, l'tat du
navigateur, et peuvent donner beaucoup d'informations qui vous seront utiles.
Les objets de base du navigateur sont les suivants :
navigator: qui contient des informations sur le navigateur de celui qui visite la page
window: c'est l'objet o s'affiche la page, il contient donc des proprits concernant la fentre elle-mme mais
aussi tous les objets-enfants contenus dans celle-ci location: contient des informations relatives l'adresse de la page l'cran
history: c'est l'historique, c'est--dire la liste de liens qui ont t visits prcdemment
document: il contient les proprits sur le contenu du document (couleur d'arrire plan, titre, ...)
Ces objets sont largement dpendant du contenu de la page. En effet, mis part des objets tels que navigatorqui sontfigs pour un utilisateur donn, le contenu des autres objets variera suivant le contenu de la page, car suivant la page,
les objets prsents dans celles-ci (sous-objets des objets dcrits prcdemment) sont diffrents.
8.4 Classification des objets du navigateur
Les objets du navigateur sont classs dans une hirarchie qui dcrit la page affiche l'cran, et qui permet d'accder n'importe quel objet grce une dsignation dpendant de la hirarchie (on part du sommet puis on descend
l'arborescence).
Dans cette hirarchie, les descendants d'un objet sont des proprits de ces objets mais peuvent aussi tre des objets
qui contiennent eux mmes des proprits.
Niveau 1 Niveau 2 Niveau 3 Niveau 4 Commentaire
navigator Informations sur le browser utilis
window
Gestion de la fentre d'affichage
parent, frames,
self, top
Dsignation de la sous-fentre : window etselfdsignent
la fentre courante,parentdsigne la fentre pre, et top
dsigne la fentre racine.location Informations sur l'emplacement de la page
history Accs l'historique (pages prcdemment visites)
document
Informations sur le contenu de la fentre (lments qui
composent la page)
images Rfrence des images prsentes dans la page
forms Rfrence des formulaires prsents dans la page
elements Rfrence des lments (objets) prsents dans le
formulaire
links Rfrence des liens prsents dans la page
anchors Rfrence des ancrages prsents dans la page
8.5 Comment accder un objet?
Pour accder un objet du navigateur, il faut parcourir la hirarchie du navigateur, en partant du sommet (l'objet
window), puis en parcourant tous les maillons jusqu' atteindre l'objet dsir.La syntaxe est window.objet1.objet2.objet3.objet_vise (ici il y a trois objets intermdiaire objet1objet2objet3 mais cenombre peut varier de 0 un trs grand nombre d'objets, suivant l'imbrication de vos objets dans la page...).
Pour accder une proprit de l'objet vis il suffit de rajouter un point, puis le nom de la proprit.
Certaines proprits sont modifiables, c'est--dire que dynamiquement on va pouvoir modifier un lment (du texte,
une image, ...). Dautres sont par contre en lecture seule, c'est--dire qu'elles permettent uniquement de rcuprer des
informations mais que l'on ne peut pas les modifier.
ESAT/DMSI/PROA/WGR Page 34 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
35/47
Cours Programmation Langage JavaScript javascript.doc
8.6 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-mme
l'objet location: le lieu de stockage de la page l'objet history: les pages visites prcdemment
l'objetframes: les cadres (division de la fentre en sous-fentres)
8.6.1 Les proprits de l'objet window
proprit description lecture seule
defaultstatusIl s'agit du message qui s'affiche par dfaut dans
la barre d'tat du navigateurnon, modifiable tout moment
framesIl s'agit d'un tableau qui contient les cadres
prsents dans la fentreTous les lments deframes sont en lecture seule
lengthnombre de cadres (nombre d'lments du tableau
frames)Lecture seule
name nom de la fentre dans laquelle on se trouve Lecture seule
parentIl s'agit de la fentre qui englobe celle dans
laquelle on se trouve (si il y en a une..)Lecture seule, contient des proprits
selfSynonyme de la fentre actuelle (redondance ou
prcision?)Lecture seule, contient des proprits
status
Il s'agit d'un message temporaire qui s'affiche
dans la barre d'tat du navigateur suite un
vnement
non, modifiable tout moment, vous devez retournez
la valeurtrue pour l'utiliser avec onMouseOver
topIl s'agit de la fentre de plus haut niveau, celle
qui contient tous les cadres (frames)Lecture seule, contient des proprits
window Il s'agit de la fentre actuelle... Lecture seule, contient des proprits
Les proprits window,self,frames, top et parentpermettent de naviguer dans le systme de sous-fentres, appelesframes.
les proprits selfet window sont les mmes, elles permettent de dsigner la page en cours, leur seul but estd'accentuer la prcision de la hirarchie pour une meilleure lecture du code. en effet, self.name est plusexplicite que name
les proprits top et parentpermettent de remonter dans la hirarchie pour atteindre des fentres de niveausuprieur, notamment pour "sortir" desframes...
la propritframes est un tableau qui permet de cibler un cadre spcifique faisant partie de la fentre o on setrouve. Pour dsigner un cadre on utilise soit la notation window.frames[i] o i reprsente le numro du cadre,soit window.nom_du_cadre en dsignant le cadre directement par le nom qu'on lui a assign dans la balise
frameset.
ESAT/DMSI/PROA/WGR Page 35 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
36/47
Cours Programmation Langage JavaScript javascript.doc
8.6.2 Les mthodes de l'objet window
L'objet window possde des mthodes relatives aux fentres :
- resizeTo() Dimensionne la taille d'une fentre. Ex : window.top.page.resizeTo(100,100); // nombre de pixels
- resizeBy() Modifie la taille d'une fentre. Ex : window.top.page.resizeBy(100,100); // nombre de pixels
- moveTo() Positionne une fentre. Ex : window.top.page.moveTo(100,100); // nombre de pixels
- moveBy() Dplace une fentre. Ex : window.top.page.moveBy(100,100); // nombre de pixels
- Les mthodes alert(), confirm() etprompt() sont des mthodes qui font apparatre une bote de dialogue, elles sont
expliques en dtail dans le chapitreBotes de dialogue.- Les mthodes open() et close() sont bien videmment destines permettre l'ouverture et la fermeture de fentres.
Toutefois la syntaxe de la mthode open() est longue car elle admet un nombre important de paramtres :
La mthode open() permet d'ouvrir une fentre, voici sa syntaxe:window.open("URL","nom_de_la_fenetre","options_de_la_fenetre");
URL dsigne l'url de la page qui sera affiche dans la nouvelle fentre, c'est--dire l'emplacement physique de
celle-ci.
Les options de la fentre sont les suivantes :
option description
directory =yes/no Affiche ou non les boutons de navigationlocation =yes/no Affiche ou non la barre d'adresse
menubar =yes/no Affiche ou non la barre de menu (fichier, edition, ...)
resizable =yes/no Dfinit si la taille de la fentre est modifiable ou non
scrollbars =yes/no Affiche ou non les ascenseurs (barres de dfilement)
status =yes/no Affiche ou non la barre d'tat
toolbar =yes/no Affiche ou non la barre d'outils
width = largeur (en pixels) Dfinit la largeur
height = hauteur (en pixels) Dfinit la hauteur
Ainsi, il est possible d'utiliser cette mthode avec n'importe quel gestionnaire d'vnement, directement dans le
code excuter ou bien dans une fonction.
les options doivent tre saisies les unes aprs les autres, spares par des virgules, sans espace
l'ensemble des options doit tre encadr par les guillemets
Chacune des fentres doit cependant tre ferme, il faut donc se servir de la mthode close() qui permet de fermerune fentre.
La mthode close() requiert le nom de la fentre comme argument, il suffit donc de crer un bouton (image,hypertexte, ou bouton de formulaire) qui permettra de fermer cette fentre.
Pour un lien hypertexte, le code sera :
Cliquez ici pour fermer la fentre
Pour un bouton (image), le code sera :
Il est bien videmment possible d'utiliser cette procdure avec tous les gestionnaires d'vnements, en utilisant
par exemple une syntaxe proche de celle-ci :
ESAT/DMSI/PROA/WGR Page 36 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
37/47
Cours Programmation Langage JavaScript javascript.doc
8.7 Les botes de dialogue
Une bote de dialogue est une fentre qui s'affiche au premier plan suite un vnement, et qui permet
Soit d'avertir l'utilisateur
Soit de le confronter un choix
Soit de lui demander de complter un champ pour rcuprer une information
Ce type de bote est utiliser avec parcimonie car elle oblige une action de la part de l'utilisateur, et est terme trsnervante... Les botes de dialogues sont toutefois un moyen simple de dbugger (reprer les erreurs), en affichant un
point donn une fentre contenant la valeur d'une variable.
Javascript en propose trois diffrentes dont l'utilisation se rapporte pour chacune une de celles dcrites ci-dessus. Ce
sont des mthodes de l'objet window.Ces botes de dialogue ont une mention Javascript, par exemple "Javascript user prompt" pour permettre de savoir
l'utilisateur qu'il s'agit d'une bote d'invite de la page en cours. En effet certains webmasters peu scrupuleux pourraient
faire croire qu'il s'agit d'une bote windows et rcuprer le mot de passe (Suite une erreur du fournisseur d'accsveuillez entrer votre login et votre mot de passe)...
8.7.1 La mthode alert()
La mthode alert() permet d'afficher dans une bote toute simple, compose d'une fentre et d'un bouton OK, le textequ'on lui fournit en paramtre. Ds que cette bote est affiche, l'utilisateur n'a d'autre alternative que de cliquer sur le
bouton OK.
Son unique paramtre est une chane de caractres, on peut donc lui fournir directement cette chane de caractres
entre guillemets, lui fournir une variable dont il affichera le contenu, ou bien mler les deux en concatnant les chanes
grce l'oprateur+.
Voici sa syntaxe :
alert(nom_de_la_variable);
alert('Chane de caractres');
alert('Chane de caractres' + nom_de_la_variable);
La chane de caractres peut (et doit dans certains cas) contenir des caractres marqus d'un antislash (\).
Par exemple, si vous voulez obtenir la bote dalerte suivante :
Il faudra crire le script suivant :
alert('Message d\'alerte \nAu feu!!');
8.7.2 La mthode confirm()
La mthode confirm() est similaire la mthode alert(), si ce n'est qu'elle permet un choix entre "OK" et "Annuler".Lorsque l'utilisateur appuie sur "OK" la mthode renvoie la valeurtrue. Elle renvoiefalse dans le cas contraire...
Elle admet comme alert() un seul paramtre: une chane de caractres.Sa syntaxe est :
confirm('Chane de caractres');
ESAT/DMSI/PROA/WGR Page 37 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
38/47
Cours Programmation Langage JavaScript javascript.doc
8.7.3 La mthode prompt()
La mthode prompt() est un peu plus volue que les deux prcdentes puisqu'elle fournit un moyen simple dercuprer une information provenant de l'utilisateur, on parle alors de bote d'invite.
La mthodeprompt() requiert deux arguments:
le texte d'invite
la chane de caractres par dfaut dans le champ de saisie
Sa syntaxe est donc la suivante :
prompt('Posez ici votre question','chane par dfaut');
Cette bote d'invite retourne la valeur de la chane saisie par l'utilisateur, elle retourne la valeurnullsi jamais aucuntexte n'est saisi...
Exemple :
Un bouton de type submit :
Le fait de cliquer sur ce bouton doit provoquer laffichage de la bote dinvite gnre par la mthodeprompt() :
En cliquant sur nous devons obtenir la bote dalerte suivante :
Nota : lanne dans la zone de texte est modifiable.
Script correspondant :
La mthode prompt()
function lireAnnee()
{
annee = prompt("En quelle anne sommes-nous ?", 2000);
alert("Vous avez rpondu : " + annee) ;
}
ESAT/DMSI/PROA/WGR Page 38 sur 47 jj/10/aa
8/8/2019 20917021-Javascript[1]
39/47
Cours Programmation Langage JavaScript javascript.doc
8.8 L'objet navigator
L'objet navigatorest un objet qui permet de rcuprer des informations sur le navigateur qu'utilise le visiteur.Cela parat totalement inutile premire vue, toutefois, comme vous le savez srement, il existe de grandes diffrences
entre diffrentes versions d'un mme navigateur (intgration de nouvelles technologies), ainsi qu'entre des navigateurs
de types diffrents (les deux antagonistes sont gnralement Netscape Navigator et Microsoft Internet Explorer qui
d'une part n'interprtent pas toutes les balises HTML et les instructions Javascript de la mme manire, et qui, d'autre
part, possde parfois des balises HTML propritaires, c'est--dire qui leur sont propres...).
Toutes les proprits de l'objet navigatorsont en lecture seule, elles servent uniquement rcuprer des informationset non les modifier.
8.8.1 Les proprits de l'objet navigator
Les proprits 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 chane de caractres.
Proprit Description Pour votre navigateur
navigator.appCodeNameretourne le code du navigateur. Tout navigateur a
pour nom de code Mozilla, cette information sembledonc inutile
Mozilla
navigator.appNameretourne le nom du navigateur (la plupart du temps la
marque). Cette proprit est utile pour diffrencier
les navigateurs de Netscape et de Microsoft.
Microsoft Internet Explorer
navigator.appVersion
retourne la version du navigateur. Cette proprit
prend la forme suivante:
Numro de version( plate-forme ; systme
d'exploitation ; nationalit)
Elle est utile pour connatre le systme d'exploitation
de l'utilisateur, mais surtout, associe avec la
proprit navigator.appName elle permet deconnatre les fonctionnalits que supporte le
navigateur de votre visiteur.
4.0 (compatible; MSIE 5.5; Windows
NT 4.0; H010818)
navigator.userAgent
retourne la chane de caractres qui comprend toutes
les informations. Les proprits ci-dessus offrent un
moyen pratique de rcuprer une partie de cette
information (cette chane tant de longueur variable,
il ne serait pas vident d'en rcuprer une portion
sans les autres proprits...)
Mozilla/4.0 (compatible; MSIE 5.5;
Windows NT 4.0; H010818)
ESAT