LPTI 1
SOMMAIRE
I. Notions de base du langage JavaScript
II. Les objets JavaScript
III. La programmation événementielle
IV. Le DOM
JavaScript/DOM
<script type=”text/javascript”>
code JavaScript…
</script>
<HTML>
<HEAD>
<TITLE>Exemple 1</TITLE>
</HEAD>
<BODY>
Voici un premier exemple JavaScript
<P>
<SCRIPT type="text/javascript">
document.write(“<h2 style=‘text-align:center;color:blue’>Bonjour! </h2>");
</SCRIPT>
</P>
</BODY>
</HTML>
Comment intégrer JavaScript?
<body bgcolor="#00FF00">
<form>
<p align=“center”>
<input type="button" value="cliquez ici" onclick="alert('coucou');">
</p>
</form>
</body>
<html>
<head>
<title>Méthode 3</title>
<script type=”text/javascript” src="code1.js"></script>
</head>
<body bgcolor="#00FF00">
<p align="center"><font face="Comic Sans MS" size="4"><strong>Exemple
3</strong></font></p>
<p><font face="Comic Sans MS">Voici ce que fait le code JavaScript :</font></p>
<p><font color="#FF0000" size="6"> <script src=“codes/code2.js"></script> </font></p>
</body>
Entrée et sortie de données
● 3 types de boites de messages peuvent être afchées en utilisant
Javascript : Alerte, Confirmation et Invite
● Méthode alert()
– sert à afcher à l’utilisateur des informations simples de type texte.
Une fois que ce dernier a lu le message, il doit cliquer sur OK pour
faire disparaître la boîte
● Méthode confirm()
– permet à l’utilisateur de choisir entre les boutons OK et Annuler.
● Méthode prompt()
– La méthode prompt() permet à l’utilisateur de taper son propre
message en réponse à la question posée
● La méthode document.write() permet d ’écrire du code HTML dans la
page WEB
Entrée et sortie de données
<html>
<head>
<title> une page simple </title>
</head>
<body>
<script language='javascript'>
document.write(“Bonjour!”);
alert(‘Salut!');
prompt('quel est votre nom ?','Indiquer votre nom ici');
confirm('quel bouton allez-vous choisir ?');
</script>
</body>
</html>
Les variables
● Un programme JavaScript est composé des éléments
suivants :
● déclaration de variables (optionnelle)
● fonctions
● blocs d'instructions
● Chaque instruction se termine par un ";"
● Javascript fait la distinction entre les majuscule et les
minuscule. On dit qu’il respecte la casse
● Les commentaires
● // pour un commentaire sur une ligne
● /* pour un commentaire sur plusieurs lignes */
Les variables
● Il existe plusieurs types de variables:
● Entiers
● Flottants (nombres à virgule)
● Chaînes de caractères
● Booléens (true ou false)
● JavaScript inclut aussi deux types de données spéciaux :
● Null : possède une seule valeur, null, qui signifie l’absence de
données dans une variable
● Undefined : possède une seule valeur, undifined. Une variable dont
le contenu n’est pas clair car elle n’a jamais stocké de valeur, pas
même null est dite non définie (undifined).
Les variables
Caractères spéciaux
● \n : nouvelle ligne
● \f : saut de page
● \r : retour chariot
● \t : tabulation horizontale
● \b : retour arrière
Les variables
● Les tableaux
● Une variable tableau est une variable pouvant contenir
plusieurs valeurs
● La déclaration d’un tableau se fait comme suit:
● Exemples:
var ville=new Array(3)
{
ville[0]="Dakar";
ville[1]="Thiès";
ville[2]="Ziguinchor";
}
● opérateur d'afectation ( = )
● opérateurs arithmétiques
– + - * / les 4 opérations
– % modulo (reste de la division)
– ++ incrémentation
– -- décrémentation
● opérateur de concaténation ( + ).
Les opérateurs
● Exemples
opérateurs Exemple Résultat
= x=6; 6
+ x=x+2; 8
++ x++; 9
-- x--; 8
% y=x%3; 2
+ S="Bonjour "+"Pierre"; Bonjour Pierre
Les opérateurs
● opérateurs logiques
● && et
● || ou
● ! négation
● opérateurs de comparaison
● == égal à
● < inférieur à
● <= inférieur ou égal à
● > supérieur à
● >= supérieur ou égal à
● != diférent de
Structures conditionnelles
● Structure conditionnelle simple:
if (condition) {
[traitement si Vrai]
}
● Structure conditionnelle équilibrée:
if (condition) {
[traitement si Vrai]
}
else {
[traitement si Faux]
} if(a>b)
{ document.write(a+" est plus grand que "+b) ;}
else
{ document.write(b+" est plus grand que "+a); }
Structures conditionnelles
●Switch
switch(variable)
{
case valeur1: instruction1; break;
case valeur2: instruction2; break;
…
default: instructionN;
};
Structures conditionnelles
● Switch (exemple)
reponse=prompt("Javascript est un langage : A.non typé\n
B.Faiblement typé\n C.Typé", "Saisissez ici la lettre
correspondant à votre réponse");
switch (reponse){
case "A":
alert("Pas tout -à-fait, ré-essayez");break;
case "B":
alert("Bravo ! C’est exact"); break;
case "C":
alert("Pas tout-à-fait, ré-essayez"); break;
default:
alert("Votre réponse ne correspond pas aux propositions");
break;
}
Structures itératives
● Boucle définie for(…) :
for([initial];[condition d'itération];[incrémente]){
[traitement]
}
for(i=1;i<=10;i++)
{
j=i*i;
document.write(j+”<br>”);
}
Structures itératives
var i=1;
while (i<=10)
{
j=i*i;
document.write(j+”<br>”);
i++;
}
Structures itératives
● Fonctions prédéfinies
parseInt() conversion en entier : parseInt("400 coups") donne 400
● Exemple:
...
<SCRIPT LANGUAGE="JavaScript">
function evaluation() {
document.formulaire.calcul.value=eval(document.formulaire.saisie.value); }
</SCRIPT>
...
<FORM NAME="formulaire">
Saisissez une expression mathématique :
<INPUT TYPE="text" NAME=saisie MAXLENGTH=40 SIZE=40>
<INPUT TYPE="button" VALUE="evaluation." onClick="evaluation()">
<INPUT TYPE="text" NAME=calcul MAXLENGTH=40 SIZE=40>
</FORM>...
● isNaN
– détermine si le parametre n’est pas un nombre (NaN : Not a
Number).
isNaN("un nombre") //retourne true
isNaN(20) //retourne false
Les fonctions
● Les fonctions définies par le programmeur:
● On les déclare avec le mot clé function.
● Dans la pratique, les fonctions définies par le programmeur
sont placées dans la section <HEAD>...</HEAD> du
document HTML.
● Exemples:
<html>
<head>
<title>Somme</title>
<script language="javascript">
function Somme(a,b) {
var resultat=a+b ;
return resultat ;}
</script>
</head>
<body>
<script language="javascript">
document.write("<h2 align=\"center\">5+7 donne: ",Somme(5,7),"</h2>");
</script>
</body>
</html>
Les fonctions
getMonth() renvoie le numéro du mois dans l'année, mais attention ce numéro est un entier entre
0 (pour janvier) et 11 (pour décembre);
getFullYear() renvoie le numéro de l'année en 4 chiffres.
getHours() elle renvoie le numéro de l'heure.
getMinutes() renvoie le numéro des minutes
● Objet Math
● Propriétés :
– E : renvoie la valeur de la constante d'Euler (~2.718);
– LN2 : renvoie le logarithme népérien de 2 (~0.693);
– LN10 : renvoie le logarithme népérien de 10 (~2.302);
– LOG2E : renvoie le logarithme en base 2 de e (~1.442);
– LOG10E : renvoie le logarithme en base 10 de e (~0.434);
– PI : renvoie la valeur du nombre pi (~3.14159);
– SQRT1_2 : renvoie 1 sur racine carrée de 2 (~0.707);
– SQRT2 : renvoie la racine carrée de 2 (~1.414);
Autres objets Javascript
● Objet Math
● Méthodes :
– abs( ), exp( ), log(), sin( ), cos( ), tan( ), asin( ), acos( ), atan( ),
max( ), min( ), sqrt( ) sont les opérations mathématiques
habituelles;
– atan2( ) : retourne la valeur radian de l'angle entre l'axe des
abscisses et un point;
– ceil( ) : retourne le plus petit entier supérieur à un nombre;
– floor( ) : retourne le plus grand entier inférieur à un nombre;
– pow( ) : retourne le résultat d'un nombre mis à une certaine
puissance;
– random( ) : retourne un nombre aléatoire entre 0 et 1;
– round( ) : arrondi un nombre à l'entier le plus proche.
JavaScript/DOM
● Événement onMouseout
● A l’inverse de onMouseover, cet événement se produit lorsque
le pointeur de la souris quitte la zone de sélection d’un
élément.
<HTML><BODY>
<IMG SRC="image.gif" onMouseOver="src='image2.gif';"
onMouseOut="src='image.gif';">
</BODY></HTML>
Exercices
Exercice 1 :
Changement de la couleur de l’arrière plan
● Écrire un formulaire du type menu déroulant permettant
de choisir la couleur de l'arrière plan à volonté.
Exercices
Solution
● Code :
<FORM>
<SELECT
onChange="document.bgColor=this.options[this.selectedIndex].value">
<OPTION VALUE="40E0D0"> Turquoise
<OPTION VALUE="2E8B57"> Vert comme la mer
<OPTION VALUE="87CEEB"> Bleu comme le ciel
<OPTION VALUE="F4A460"> Brun comme le sable
<OPTION VALUE="FFF0F5"> Bleu lavande
<OPTION VALUE="FF1493"> Rose
<OPTION VALUE="FFFFFF" SELECTED> Blanc
</SELECT>
</FORM>
Exercices
Notes :
● la balise SELECT indique que l'on utilise un menu déroulant ;
les balises OPTION indiquent les options possibles.
● L'événement onChange permet de changer la sélection.
● document.bgColor est la couleur de fond de l'objet document
● value est la valeur de l'option (ici c'est une couleur codée).
● options[this.selectedIndex] est l'option sélectionnée par
l'utilisateur
● On notera qu'au départ c'est l'option "Blanc" qui est
sélectionnée par défaut.
Exercices
Exercice 2 :
Horloge digitale
●
Réaliser une horloge digitale donnant le jour et
l'heure
Exercices
Solution
<TABLE BORDER=4 BGCOLOR="cyan">
<TR><TD>
<FORM id="clock_form">
<INPUT TYPE=TEXT NAME="cadran" id="cadran" SIZE=26>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
function TicTac(){
Date_courante = new Date();
document.getElementById("cadran").value = " "+Date_courante;
document.getElementById("cadran").blur();
setTimeout("TicTac()", 1000);
}
TicTac();//appel de la fonction TicTac
// fin de l'horloge -->
</SCRIPT>
</TD></TR>
</TABLE>
Exercices
Notes :
• On utilise ici un formulaire qui présente une zone d'affichage de
texte, dont le nom est "cadran".
• Dans le script, la fonction TicTac() est définie. Elle crée un objet
de type Date : Date_courante.
• document.clock_form.cadran.value est la valeur affichée dans la
zone cadran du formulaire clock_form du document web. La zone
cadran est ensuite désactivée avec la fonction blur().
• SetTimeOut est un minuteur qui déclanche la fonction TicTac()
au bout de 1000 ms. On notera la récursivité puisque la fonction
TicTac() s'appelle elle-même.
Exercices
●
Implémentez les fonctions suivantes:
●
imageSuivante() : qui à chaque appel affiche l'image suivante
●
courir() : qui appelle l'image suivante toutes les 10 ième de
secondes
●
stop() : qui permet de stopper le processus
Javascript/DOM
IV. Le DOM
Le DOM
● Présentation
● Concept de noeud (node)
● Hiérarchisation des noeuds
● Propriétés de l'objet node
● Accès aux nœud Element
● Propriétés des nœuds Element
● Méthodes des nœuds Element
● Exercice
Présentation
● DOM (Réf : https://developer.mozilla.org/fr/docs/Web/API/Référence_du_DOM_Gecko)
● Document Object Model (Modèle Objet du Document) définit
un mode standardisé pour accéder et mettre à jour tous les
éléments d'un document HTML, XHTML ou XML
● Le DOM est une interface de programmation (API)
● Le DOM n'est pas en soi un langage de balise ou de
programmation mais simplement une manière de percevoir,
de parcourir et de manipuler un document HTML ou XML, en
utilisant des méthodes et des propriétés spécifiques.
Concept de noeud (node)
Texte du paragraphe
Hiérarchisation des noeuds
document
html
head body
enfant.
●Certains noeuds sont frères et soeurs (siblings) Le DOM Titre de Texte du
car ils partagent le même parent niveau 1 paragraphe
Propriétés de l'objet Node
● Objet Node
● le DOM traite le document HTML, XHTML ou XML par analogie avec la
programmation orientée objet c'est-à-dire que le DOM fait appel à des propriétés
et à des méthodes pour manipuler le document et ses composants représentés
par des objets Node.
● createElement(DOMString)
● Crée un élément, une balise, dont le nom est donné, et retourne un
objet Element.
– On peut donner à cette balise des attributs avec la méthode
createAttribute de l'objet Element.
● createTextNode(DOMString)
● Permet d'insérer du texte dans le document. Retourne un objet Text.
Exercice
Réalisez une page similaire à la suivante (todo list)