Académique Documents
Professionnel Documents
Culture Documents
D .Mailliet
DEUST TIC-RM
Cours Javascript.......................................................................................................................................................................4
I. Introduction .....................................................................................................................................................................4
II.
Diffrents langages de script........................................................................................................................................4
III.
Javascript pour excuter des commandes systme.......................................................................................................5
IV.
Javascript Dans une page html ou hta..........................................................................................................................6
A.
Gnralits ...............................................................................................................................................................6
B.
Erreur dans un javascript .........................................................................................................................................6
1. Erreur simple ...........................................................................................................................................................6
2. ErreurGrave .............................................................................................................................................................6
C.
Commentaires ..........................................................................................................................................................7
D.
Constantes, Variables, types ....................................................................................................................................7
1. Variables ..................................................................................................................................................................7
2. Constantes................................................................................................................................................................8
3. La valeur sans valeur ...............................................................................................................................................8
4. oprateurs divers......................................................................................................................................................8
a) Oprateurs dassignement :..................................................................................................................................8
b)
Oprateurs de comparaison :............................................................................................................................8
c) Oprateurs affectation conditionnelle.................................................................................................................8
E.
Types .......................................................................................................................................................................9
1. Gnralits ...............................................................................................................................................................9
a) Syntaxe objet .......................................................................................................................................................9
b)
Syntaxe Classe .................................................................................................................................................9
c) Syntaxe imprative ..............................................................................................................................................9
2. Boolens ..................................................................................................................................................................9
a) Oprateurs logiques : ...........................................................................................................................................9
3. Les nombres.............................................................................................................................................................9
a) Les entiers:...........................................................................................................................................................9
b)
Les nombres dcimaux: .................................................................................................................................10
c) Les oprateurs ....................................................................................................................................................10
d)
Les constantes mathmatiques .......................................................................................................................10
e) Les fonctions......................................................................................................................................................10
4. Les chaines: ...........................................................................................................................................................10
a) Loprateur de Concatnation............................................................................................................................11
b)
Les fonctions..................................................................................................................................................11
5. Les tableaux:..........................................................................................................................................................11
a) Tableaux simples ...............................................................................................................................................11
b)
Tableaux associatifs .......................................................................................................................................12
c) Tableaux multidimentionnels.............................................................................................................................12
d)
fonctions ........................................................................................................................................................13
6. Les dates: ...............................................................................................................................................................14
a) Fonctions............................................................................................................................................................14
F.
Les structures de contrle ......................................................................................................................................14
1. Conditionnelle........................................................................................................................................................14
a) Le Si...................................................................................................................................................................14
b)
Le Cas ............................................................................................................................................................15
2. Boucles ..................................................................................................................................................................15
a) Boucle pour........................................................................................................................................................15
b)
Pour dans .......................................................................................................................................................16
c) Boucle tant que ..................................................................................................................................................16
3. Rupture et continuit de boucle .............................................................................................................................17
G.
Les fonctions..........................................................................................................................................................17
1. Passage des arguments par valeur..........................................................................................................................17
2. Passage des arguments par adresse (par variable)..................................................................................................18
3. Arit variable .........................................................................................................................................................18
H.
Les procdures .......................................................................................................................................................18
I. Porte des variables ...................................................................................................................................................19
Technologies Internet
D. Mailliet
DEUST TIC-RM
J.
K.
Classes et Objets........................................................................................................................................................ 19
Entres/Sorties....................................................................................................................................................... 20
1. sorties .................................................................................................................................................................... 20
2. entres ................................................................................................................................................................... 20
L.
Fichiers.................................................................................................................................................................. 21
M.
Inclusion de fichiers .............................................................................................................................................. 21
N.
Evnements : traitement ........................................................................................................................................ 21
O.
Evnements : simulation ....................................................................................................................................... 22
Dans les 2 exemples suivants on envoie automatiquement le formulaire ci-dessus.............................................................. 22
P.
Objets prdfinis ................................................................................................................................................... 23
1. Exemple trs important : ....................................................................................................................................... 23
2. Les tableaux prdfinis.......................................................................................................................................... 24
3. Exemple : communication entre frames ................................................................................................................ 25
4. Exercice :............................................................................................................................................................... 26
Cours Javascript .................................................................................................................................................................... 29
Technologies Internet
D. Mailliet
Cours Javascript
I.
Introduction
Javascript est comme son nom lindique un langage de scripts don la syntaxe ressemble celle du
langage jave. Il ne sagit l que dune ressemblance Car le Java est un langage compil (en langage
intermdiaire) alors que le javascript est interprt. Le Java est un langage orient objet alors que le
javascript est partiellement impratif et partiellement objet.
Le javascript est utilis dans 2 cas :
Raliser des programmes de toutes sortes permettant de faire des calculs, classements,
traitements divers et automatisation des commandes systmes
Les balises html permettent la mise en forme de pages de textes qui apparaissent dans les fentres des
navigateurs tels Internet Explorer Mozilla Firefox Google Chrome Opra
Cette mise en page est purement statique. Si on souhaite la dynamiser, faire en sorte quelle ragisse
aux actions de lutilisateur, il faut y adjoindre des scripts.
Il est possible de faire excuter des instructions par le systme dexploitation : on peut automatiser des
taches que lon fait habituellement en ligne de commande dans une console ou terminal (menu
dmarrer/Excuter cmd ) ou en cliquant dand diffrentes fentres.
Il est enfin possible dcrire des programmes de traitements divers le langage interprt nest pas le
plus adapt, cest nanmoins possible.
II.
Windows (langage de script) et Internet Explorer (page html) interprtent diffrents langages
de script Visual basic, Javascript et Perl par exemple le fichier coucou2.wsf :
<job id="coucou">
<script language="vbscript">
wscript.echo "coucou(vbscript)"
</script>
<script language="javascript">
// affiche coucou
wscript.echo ("coucou(javascript)");
</script>
<script language="perlscript">
#affiche coucou
$WScript->echo ("coucou(perlsript)");
</script>
</job>
Technologies Internet
JS : Javascript
D. Mailliet
DEUST TIC-RM
Technologies Internet
D. Mailliet
DEUST TIC-RM
A.
Gnralits
est quivalent
B.
Erreur simple
ErreurGrave
Rien ne s'excute entre < script type="text/javascript" > et </ script >
Technologies Internet
D. Mailliet
DEUST TIC-RM
C.
Commentaires
Tout ce qui se trouve dans un commentaire est ignor. Il est conseill, comme toujours, de commenter
largement ses scripts.
D.
Le code javascript scrit dans une page Html entre les balises :
< script type="text/javascript" >
<!-
//-->
</SCRIPT>
Variables
Le typage des variables est implicite en javascript. Il nest donc pas ncessaire de dclarer leur type au
pralable ni mme de les dclarer avant leur utilisation.
Le nom des variables est sensible la casse (ie : x != X).
Les noms de variables suivent les mmes rgles de nommage que les autres entits javascript. Un nom
de variable valide doit commencer par une lettre ou un soulign (_), suivi de lettres, chiffres ou
souligns.
Une lettre peut tre une des lettres minuscules (a z) ou majuscules (A Z), et les caractres ASCII
de 127 255 (0x7f-0xff).
Exemple . Validit des noms de variables
< script type="text/javascript" >
var MaVar ; // Dclaration seule
var mavar = "Jean"; // dclaration avec affectation initiale
MaVar = "Paul"; // affectation
document.write(mavar+', '+MaVar);
// affiche "Jean, Paul"
// 4site = 'pas encore'; // invalide : commence par un nombre
_4site = 'pas encore'; // valide : commence par un souligné
mas = 'jaune';
// valide : le code ASCII de est 239.
document.write( mas );
document.write( _4site );
Technologies Internet
JS : Javascript
D. Mailliet
DEUST TIC-RM
</SCRIPT>
Les variables peuvent tre de type entier (integer), rel (double), chane de caractres (string) ,
boolen (boolean)., tableau (array), objet (object)
Il est possible de convertir une variable en un type primitif grce au cast (comme en C, java ou
delphi).
Le cast est une conversion de type. Laction de caster (transtyper) consiste convertir une variable
dun type en un autre.
Exemple :
chn= "12";
nbr = parseInt(chn);
Quelques fonctions :
2.
Constantes
Lutilisateur ne peut dfinir des constantes dont la valeur est fixe une fois pour toute !
3.
La valeur spciale null reprsente l'absence de valeur. Une variable avec la valeur NULL n'a pas de
valeur. La constante null est sensible la casse.
var mavar= null;
Par exemple prompt() renvoie null quand lutilisateur appuie sur annuler.
4.
oprateurs divers
a)
Oprateurs dassignement :
Oprateurs de comparaison :
,= = (galit), < (infrieur strict), <= (infrieur large), >, >=, != (diffrence)
c)
Signalons un oprateur trs spcial qui quivaut une structure conditionnelle complexe if then else
la diffrence quil renvoie un rsultat de valeur pouvant ne pas tre un boolen : loprateur ternaire.
Syntaxe :
(condition)?(expression1):(expression2);
Si la condition est vrai alors value et renvoie lexpression1 sinon value et renvoie lexpression2.
Exemple :
nbr = (toto>10)?(toto):(toto%10);
Dans cet exemple, la variable nbr prend toto pour valeur si toto est strictement suprieur 10, sinon
vaut le reste de la division entire de toto par 10.
Technologies Internet
JS : Javascript
D. Mailliet
DEUST TIC-RM
E.
Types
1.
Gnralits
Mme si les variables n'ont pas tre explicitement dclares, javascript n'en conserve pas moins la
notion de type, plus exactement la notion de classe et dobjet.
Une connaissance de la POO (programmation oriente objet) facilite la comprhension de ce qui va
suivre. Nanmoins, en premire approche, mais vraiment en toute premire approche (les puriste vont
pousser les haut cris !!), on peut dire voix basse (et de faon peine audible) que, au niveau syntaxe,
le paramtre principal de la fonction, au lieu de le mettre derrire le nom de la fonction, on lcrit
devant et on met un point comme sparateur.
Selon les fonctions, on utilise lune des 3 formes :
a)
Syntaxe objet
Dans un langage de programmation impratif pour obtenir une sous-chaine extraite de la chaine chn
entre les rangs deb et fin , on crirait : substring(chn,deb,fin), en javascript, on crit :
chn.substring(deb,fin),
Syntaxe Classe
Certaines fonctions ont comme syntaxe celle de la mthode de classe : le nom de la classe (attention
la casse) est suivi du nom de la mthode ou de lattribut.
a = Math.sqrt(Math.sin(Math.PI / 3))
0.9306048591020996
c)
Syntaxe imprative
C'est le type le plus simple. Un boolen prend les valeurs de TRUE ou FALSE.
a)
Oprateurs logiques :
Les nombres
a)
Les entiers:
Les entiers sont de nombres dont la plage dpend des plate-formes, mais reste quivalente la porte
du type long en C.
On pourra exprimer un entier en dcimal, hexadcimal ou encore en octal.
decimal = 10;
hexa = 0x0F;
octal = 020;
Technologies Internet
JS : Javascript
D. Mailliet
DEUST TIC-RM
b)
. On peut exprimer ce type sous forme de nombre normal avec un point dcimal, ou en notation
scientifique.
normal = 0.017;
scientifique = 17.0E-3;
c)
Les oprateurs
4.
Les fonctions
description
la valeur absolue d'un nombre
l'arc cosinus en radian d'un nombre entre -1 et 1 (0 sinon)
l'arc-sinus en radian d'un nombre compris entre -1 et 1 (0 sinon)
l'arc tangente en radian d'un nombre entre -pi/2 et pi/2
l'entier le plus proche par valeur suprieure
le cosinus d'un angle en radian
la valeur exponentielle d'une valeur
l'entier le plus proche par valeur infrieure
le log de nombre
le maximum entre deux nombres
le minimum entre deux nombres
base puissance exposant
une valeur alatoire entre 0 et 1
l'entier le plus proche de la valeur donne en argument
le sinus de l'angle donn en radian
la racine carre de Math.sqrt(number)
la tangente du nombre donn en radian
Les chaines:
Une chaine est une suite de caractres. Elle peut tre dlimite par des guillements simples ou
doubles.
titi = "toto";
titi = toto;
document.write( "Je m'appelle " + titi);
document.write( 'Je m\'appelle ' + 'titi ');
JS : Javascript
10
D. Mailliet
DEUST TIC-RM
Loprateur de Concatnation
le + (plus) .
document.write( 'Je m+ "appelle "+titi); // va afficher je mappelle toto si la variable titi contient
a = "Bonjour " ;
a .+= "monde" ; // quivalent a = a + "monde" ; a contient Bonjour monde
b)
Les fonctions
syntaxe
text.anchor(nom)
chaine.big()
chaine.blink()
chaine.bold()
chane.charAt(index)
escape(chaine)
chaine.fixed()
chaine.fontcolor(couleur)
chaine.fontsize(taille)
chaine1.indexOf(chaine2,[depuis])
chaine.italics()
chaine1.lastIndexOf(chaine2, [depuis])
texte.link(URL)
chaine.small()
chaine.strike()
chaine.sub()
chaine.substring(position1, position2)
chaine.sup()
chaine.toLowerCase()
chaine.toUpperCase()
5.
description
Cre un signet dans la page HTML
positionne le couple de balises BIG (gros caractres) autour du texte
positionne le couple de balises BLINK (clignotant) autour du texte
positione le couple de balises BOLD (gras)
le caractre index de la chane (commenant 0)
en caractres ASCII des caractres ISO Latin-1 (& devient %26)
positionne le couple de balises TT (fixe) autour du texte
la couleur donne la chane de caractres concerne (quivalent
&tl;FONT COLOR=couleur>)
la taille de police donne la chane de caractres concerne
(quivalent &tl;FONT size=taille>)
la position de chane2 recherche dans chaine1 partir de la position
depuis(-1 si pas trouv)
positionne le couple de balises I (italique) autour du texte
retourne la dernire occurrence de chaine2 dans chaine1 partir de la
position depuis
cre un lien hypertexte vers URL partir de texte
positionne le couple de balises SMALL (petites lettres) autour du texte
positionne le couple de balises STRIKE (biff) autour du texte
positionne le couple de balises SUB(indice) autour du texte
la chaine de caractres commenant la position1 et finissant la
position2
positionne le couple de balises SUP (exposant) autour du texte
convertit la chaine concerne en minuscule
convertit la chaine concerne en majuscule
Les tableaux:
a)
Tableaux simples
Un tableau est un type de donnes pouvant contenir plusieurs valeurs, indexes numriquement
partir de ZERO.
Il est possible de prciser ou non le nombre dlments
var tableau = new Array(4) ;
tout comme :
var tableau = new Array() ;
Technologies Internet
JS : Javascript
11
D. Mailliet
DEUST TIC-RM
puis :
tableau[0] = "titi";
tableau[1] = "toto!";
tableau[3]="tata";
Remarquons
le A majuscule Array
Une chane de caractres nest pas un tableau de caractres.
jours = new array("Lundi","Mardi","Mercredi","Jeudi", "Vendredi","Samedi","Dimanche");
b)
Tableaux associatifs
Tableaux multidimentionnels
Technologies Internet
JS : Javascript
12
D. Mailliet
DEUST TIC-RM
d)
Mthode
fonctions
Description
Exemplse
concat(valeur,...)
join(sparateur)
push(valeur,...)
reverse()
shift()
slice(dbut, fin)
sort(fonction_tri)
splice (dbut,
nb_lt__effacer,
valeur, ...)
toString()
unshift()
Technologies Internet
JS : Javascript
13
D. Mailliet
DEUST TIC-RM
6.
Les dates:
a)
Fonctions
syntaxe
date.getDate()
date.getDay()
date.getHours()
date.getMinutes()
date.getMonth()
date.getSeconds()
date.getTime()
date.getTimezoneOffset()
date.getYear()
Date.parse(chainedate)
date.setDate(valeur)
date.setDay(valeur)
date.setHours(valeur)
date.setMinutes(valeur)
date.setMonth(valeur)
date.setSeconds(valeur)
date.setTime(valeur)
date.setYear(valeur)
chainedate.toGMTString()
description
le jour du mois de la date concerne (entier de 1 31)
le jour de la semaine de la date concerne (0=dimanche)
l'heure de la journe de la date concerne (0 23)
la minute de l'heure de la date concerne (0 59)
le mois de la date concerne (0 11)
la seconde de la minute de la date concerne (0 59)
l'heure dans la valeur numrique correspondante
la diffrence (en minutes) entre l'heure courante et l'heure GMT
le nombre d'annes coules depuis 1900
le nombre de millisecondes depuis le 01/01/1970
positionne le jour du mois de la date concerne (entier de 1 31)
positionne le jour de la semaine de la date concerne (0=dimanche)
positionne l'heure de la journe de la date concerne (0 23)
positionne la minute de l'heure de la date concerne (0 59)
positionne le mois de la date concerne (0 11)
positionne la seconde de la minute de la date concerne (0 59)
positionne l'heure dans la valeur numrique correspondante
positionne le nombre d'annes coules depuis 1900
convertit une date en chane de caractres en suivant les conventions
GMT (Mar, 01 Mar 1996 20:00:00 GMT)
convertit une date en chane de caractres en suivant les conventions
locales (03/01/96 20:00:00)
le nombre de secondes coules depuis le 01/01/1970 0h0mn
chainedate.toLocaleString()
Date.UTC(an, mois, jour [, h] [,
min] [, sec])
F.
Elles ressemblent fortement celle de C, Java, Javascript. On se contente donc de donner ici une srie
dexemples
1.
Conditionnelle
a)
Le Si
Technologies Internet
JS : Javascript
14
D. Mailliet
DEUST TIC-RM
dans lexemple ci-dessous, 2 instructions sont excutes si le test est valide, on les met donc entre
accolades {} et il ny a pas de clause elseif ni else.
if (a > b) {
document.write( "a est plus grand que b");
b = a;
}
if (a == 5){
document.write( "a égale 5");
document.write( "...");
} else if (a == 6){
document.write( "a égale 6");
document.write( "!!!");
} else
document.write( "a ne vaut ni 5 ni 6");
b)
Le Cas
switch (i) {
case 0:
document.write( "i égale 0");
break;
case 1:
document.write( "i égale 1");
break;
case 2:
document.write( "i égale 2");
break;
}
est quivalent
if (i == 0) {
document.write( "i égale 0");
}
if (i == 1) {
document.write( "i égale 1");
}
if (i == 2) {
document.write( "i égale 2");
}
affiche
i gale 1i gale 2
2.
Boucles
a)
Boucle pour
JS : Javascript
15
D. Mailliet
DEUST TIC-RM
Pour dans
Affiche : 0 : 1 , 1 : 7 , 2 : 2 , 3 : 6 , 4 : 4 , 5 : 5 , 6 : 8 , 7 : 9 ,
c)
Syntaxe :
While (test) instruction ;
La boucle nexcute quune seule instruction, pour en excuter plusieurs, il faut les mettre entre
accolades { }
Technologies Internet
JS : Javascript
16
D. Mailliet
DEUST TIC-RM
i = 1;
while (i <= 10) document.write( i++);
Affiche 12345678910
3.
continue permet de passer litration suivante sans excuter le reste des instructions :
var toto = new Array(1,7,2,6,4,5,8,9);
for (var i in toto) {
if ( (toto[i] % 2) !=0 ) continue; // vite les valeurs paires
document.write( toto[i]+" , ");
}
Affiche : 2 , 6 , 4 , 8 ,
On obtient le mme rsultat avec :
var toto = new Array(1,7,2,6,4,5,8,9);
for (var i in toto) {
if ( (toto[i] % 2) = 0 ) document.write( toto[i]+" , ");
}
G.
Les fonctions
Syntaxe :
function nom (arg_1, arg_2, ..., arg_n) {
corps de fonction
return retval;
}
On peut dclarer les fonctions nimporte o dans le programme. Cependant une bonne rgle
consiste les dclarer avant de les utiliser (Ne pas suivre lexemple ci-dessous)
1.
function incr(a,b){
a += b; // a = a + b
return a ;
}
c=2;
document.write( incr(c,3));
document.write(" , ");
document.write( c);
// -->
</SCRIPT>
</body>
</html>
Affiche: 5 , 2
Technologies Internet
JS : Javascript
17
D. Mailliet
DEUST TIC-RM
<!-c=2;
document.write( incr(c,3));
document.write(" , ");
document.write( c);
// -->
</SCRIPT>
</body>
</html>
Arit variable
Javascript dfinit la classe Fonction et les paramtres des fonctions sont rangs dans un tableau
arguments et le nombre dlments dans length
<html>
<head>
<SCRIPT LANGAGE="JavaScript">
<!--
<body>
<SCRIPT LANGAGE="JavaScript">
<!-c=2;
document.write( inc(c,3)+"<br />");
document.write( inc(c)+"<br />");
document.write( c +"<br />");
// -->
</SCRIPT>
function inc(){
if (inc.arguments.length==1)
return inc.arguments[0] +1 ;
else
return inc.arguments[1] + inc.arguments[0];
}// -->
</SCRIPT>
</head>
</body>
</html>
H.
Les procdures
Cest la mme syntaxe que pour les fonctions on ne met pas de ligne return
Technologies Internet
JS : Javascript
18
D. Mailliet
DEUST TIC-RM
I.
La porte d'une variable dpend du contexte dans lequel la variable est dfinie. Pour la majorit des
variables, la porte concerne la totalit d'un script javascript. Mais, lorsque vous dfinissez une
fonction, la porte d'une variable dfinie dans cette fonction est locale la fonction. Par exemple:
var a = 1; // porte globale avec ou sans var
function test1() {
document.write( "test1, a vaut :"+a+"<br />");
}
function test2() {
a = 2; // porte globale
document.write( "test2, a vaut :"+a+"<br />");
}
function test3() {
var a = 3; // porte locale
document.write( "test3, a vaut :"+a+"<br />");
}
function test4() {
b = 4; // porte globale
document.write( "test4, b vaut :"+b+"<br />");
}
function test5() {
var c = 5; // porte locale
document.write( "test5, c vaut :"+c+"<br />");
}
document.write( "programme, a vaut :"+a+"<br
/>");
test1();
document.write( "programme, a vaut :"+a+"<br
/>");
test2();
document.write( "programme, a vaut :"+a+"<br
/>");
test3();
document.write( "programme, a vaut :"+a+"<br
/>");
test4();
document.write( "programme, b vaut :"+b+"<br
/>");
test5();
document.write( "programme, c vaut :"+c+"<br
/>"); // pas d'affichage jusqu' la fin ==> erreur
affiche le message :
programme, a vaut :1
test1, a vaut :1
programme, a vaut :1
test2, a vaut :2
programme, a vaut :2
test3, a vaut :3
programme, a vaut :2
test4, b vaut :4
programme, b vaut :4
test5, c vaut :5
J.
Classes et Objets
Javascript permet la poo (programmation oriente objet) comme java C++ php ou Delphi Il est
possible de dfinir des classes et dinstancier les objets correspondants
Cette partie suppose une connaissance des langages orients objet. On ne donnera que la syntaxe sur
lexemple trs classique des carrs et rectangles
This fait rfrence, dans une classe, lobjet correspondant linstance de cette classe
<html>
<head>
SCRIPT LANGAGE="JavaScript">
function rectangle(Long,larg){ // on dfinit ici
la classe
// dfinitions des fonctions et procdure
Technologies Internet
JS : Javascript
19
function perimetre(){
return 2*(this.Lng + this.larg) ;
}
function surface (){
return this.Lng * this.larg ;
}
D. Mailliet
DEUST TIC-RM
function double(){
this.Lng *= 2;
this.larg *= 2;
}
// affectation des attributs
this.Lng = Long;
this.larg = larg;
// affectations des mthodes
this.surf = surface;
this.dble =double;
this.perimetre=perimetre;
}
</SCRIPT>
</head>
<body>
<SCRIPT LANGAGE="JavaScript">
document.write(rect.larg); // 5
document.write("<br>");
document.write(rect.surf()); // 15
document.write("<br>");
document.write(rect.perimetre()); // 16
document.write("<br>");
rect.dble();
document.write(rect.Lng); // 6
document.write("<br>");
document.write(rect.larg); // 10
document.write("<br>");
document.write(rect.surf()); // 60
document.write("<br>");
document.write(rect.perimetre()); // 32
document.write("<br>");
</SCRIPT>
</body>
</html>
document.write(rect.Lng); // 3
document.write("<br>");
K.
Entres/Sorties
1.
sorties
entres
une
x=prompt('entier=',0);
alert(x);
JS : Javascript
20
D. Mailliet
DEUST TIC-RM
confirm renvoie vrai ou faux selon que lutilisateur clique sur ok ou annuler
L.
Fichiers
La lecture et lcriture dans un fichier local ou distant poserait un srieux problme de scurit !!!!!
La seule chose quil est possible denregistrer ou de lire sur le disque de lutilisateur, ce sont des
Cookies
M.
Inclusion de fichiers
Pour inclure un fichier javascript dans une page html, on ajoute lattribut src suivi de lURL (relative
ou absolue) du fichier inclure. Ce fichier ne doit contenir que du code javascript.
<Script Language="JavaScript" src="xxx.js">
// description du fichier xxx
</script>
N.
Evnements : traitement
Lutilisateur du navigateur dclanche un Evenement en oprant soit un clic sur un bouton, un lien, une
option dune liste droulante ou cocher un bouton radio etc.. soit en dplaant la souris ,etc..
Voici les principaux vnements et quelques exemples de balises :
Evnement
onBlur
<INPUT> <SELECT>
<TEXTAREA><TEXT>
onClick
onFocus
onLoad
<BODY>
onMouseOut
onMouseOver
onReset
<INPUT>
onSelect
onSubmit
<FORM>
onUnload
<BODY>
onChange
Lvnement est capt par lobjet sur lequel il sest produit et si le programme indique ce quil faut
faire au cas o celui-ci se prsente, le code prvu cet effet seexcute.
<html>
Technologies Internet
JS : Javascript
21
D. Mailliet
DEUST TIC-RM
<head>
<TITLE>Question/rponse</TITLE>
<SCRIPT LANGAGE="JavaScript">
function reponse() {
alert('bonjour ' + document.maforme.leprenom.value);
return true
}
function tst() {
alert('bonjour ' + document.maforme.lenom.value);
return true
}
</SCRIPT>
</head>
<body>
<form name="maforme">
Votre nom : <INPUT type="text" name="lenom" value="" onBlur="tst();">
Votre prnom : <INPUT type="text" name="leprenom" value="">
<INPUT type="submit" value="Valider" onclick="reponse();">
</form>
</body>
</html>
O.
Evnements : simulation
JS : Javascript
22
D. Mailliet
DEUST TIC-RM
<form name="maforme">
Votre nom : <INPUT type="text" name="lenom" value="toto">
Votre mot de passe : <INPUT type="password" name="mdp" value="titi">
<INPUT name=ok type="submit" value="Valider" >
</form>
</body>
</html>
Remarque : Dun point de vue scurit, ce nest pas une bonne ide que de mettre le mot de passe en
clair.
P.
Objets prdfinis
Le schma suivant, que l'on retrouve souvent dans la littrature, illustre la hirarchie des classes JS
pour le Navigateur :
window
|
+ --parent, frames, self, top
|
+ --location
|
+ --historique
|
+ --document
|
+ --formulaire (FORM)
|
|
|
+ --elements (text fields, textarea, checkbox, password
|
radio, select, button, submit, reset)
+ --links
|
+ -- URL
1.
Le programme ci-dessous est une mine de renseignements, il dresse la liste des proprits des objets
de la feuille :
<html>
<body>
<form name="maforme">
Votre nom : <INPUT type="text" name="lenom" value="" onBlur="tst();">
<INPUT type="submit" value="Valider" onclick="reponse();">
</form>
<SCRIPT LANGAGE="JavaScript">
<!-function show_props(obj,obj_name){
Technologies Internet
JS : Javascript
23
D. Mailliet
DEUST TIC-RM
var result="";
for(var i in eval(obj)) result+= obj_name+"."+i+" = "+eval(obj)[i]+"<br />\n";
return result;
}
x=prompt("proprits de l'objet : ","window.document");
alert( show_props(x,x));
document.write( show_props(x,x));
// -->
</SCRIPT>
</body>
</html>
essayer avec la proposition du prompt window.document , reprer un object et ressayer avec lui par
exemple window.document.maforme puis window.document.maforme.lenom puis etc..
Remarque
le formulaire nest l que pour observer ses proprits
la fonction eval qui comme son nom lindique value lobjet pass en paramtre
e
x
e
m
p
l
e
:
eval("5 + 3")
2.
Les principaux objets d'une page HTML peuvent tre nomms mais ils sont aussi dfinis par des
tableaux que l'on retrouve dans la liste suivante :
Technologies Internet
JS : Javascript
24
D. Mailliet
DEUST TIC-RM
Array
anchors
Description
comprend toutes les balises <A> qui contiennent un argument NAME
applets
arguments
elements
embeds
forms
frames
comprend toutes les balises <FRAME> contenant un FRAMESET dans l'ordre de leur dfinition
history
images
links
comprend tous les liens <AREA HREF="...">, <A HREF=""> et les objets Link crs par la mthode
linkwith the link
mimeTypes
Comprend tous les types MIME supports par le navigateur (helpers ou plug-ins)
options
plugins
pour accder
on a le choix : soit par indexation (la numrotation commence
zro !!) :
window.document.forms[0].elements[4].value
Technologies Internet
JS : Javascript
25
D. Mailliet
DEUST TIC-RM
Lorsquon dfinit 2 cadres, il faut logiquement 3 fichiers (voir plus haut). Ici, le cadre du bas ne
contenent rien initialement, nest dfini par aucun fichier.
Ce qui apparat dans le cadre infrieur (nomm bas ) est cr par le script contenu dans le fichier du
cadre suprieur (nomm haut ) le bouton situ dans ce cadre rcupre le contenu de llment zone
texte du cadre bas
4.
Exercice :
JS : Javascript
26
D. Mailliet
DEUST TIC-RM
}
function freuro(){
window.document.calc.euro.value =window.document.calc.franc.value / taux;
}
function modif(tx,ch){ // ch est une chaine de 2 caractres
taux = tx;
var chn =window.document.calc.outerHTML;
var pos = (chn.indexOf(window.document.calc.franc.outerHTML));
window.document.calc.outerHTML=chn.substring(1,pos - 5) +ch + chn.substring(pos3,chn.length);
eurofr();
}
// -->
</SCRIPT>
</head>
<body>
<form name="calc">
<input type="radio" name="monaie" checked onClick="modif(6.55957,'FF');"> franc franais <br />
<input type="radio" name="monaie" onClick="modif(40.3399,'FB');"> franc belge <br />
<input type="radio" name="monaie" onClick="modif(1.95583,'DM');"> Deutch Mark <br />
<input type="radio" name="monaie" onClick="modif(166.386,'Pt');"> pesetas espagnole <br />
<input type="radio" name="monaie" onClick="modif(1936.27,'LI');"> Lire Italienne <br />
ff : <input type="text" name="franc" onkeyup ="freuro()"> <br />
euros : <input type="text" name="euro" onkeyup ="eurofr()" )"> <br />
<input type="button" value="effacer"
onClick="window.document.calc.franc.value='';window.document.calc.euro.value='';">
</form>
</body>
</html>
Technologies Internet
JS : Javascript
27
D. Mailliet
Technologies Internet
Php / MySQL
28
D. Mailliet
Cours Javascript
D. Mailliet