SlideShare une entreprise Scribd logo
1  sur  78
Avec les événements et surtout leur gestion,
nous abordons le côté "magique" de Javascript.
En Html classique, il y a un événement que vous
connaissez bien. C'est le clic de la souris sur un
lien pour vous transporter sur une autre page
Web. Hélas, c'est à peu près le seul.
Heureusement, Javascript va en ajouter une
bonne dizaine, pour votre plus grand plaisir.
Les événements Javascript, associés aux
fonctions, aux méthodes et aux formulaires,
ouvrent grand la porte pour une réelle
interactivité de vos pages.
onChange (après modification
réussie)
Est prévu pour le cas où un
utilisateur appuie sur le
bouton stop du navigateur,
alors que tous les graphiques
ne sont pas encore chargés.
Exemple
<html>
<head>
<title>Test</title>
</head>
<body>
<form name="Test" action="">
<textarea rows="5" cols="40"
onChange="alert(this.value)">Modifiez ce texte
et cliquez ailleurs!
</textarea>
</body>
</html>
onClick (en cliquant)
Au cas où l'utilisateur clique sur un élément.
Exemple
<html><head><title>Test</title>
</head><body>
<form name="Test" action="">
<input size="30" name="sortie"
readonly><br>
<input type="button"
value="Derni&egrave;re mise &agrave; jour"
onClick="this.form.sortie.value=document.lastM
odified">
</form>
</body></html>
Au cas où l'utilisateur double-clique sur un élément.
Exemple
<html><head><title>Test</title>
</head><body>
<form name="calculer" action="">
Valeur: <input size="10" name="valeur">
<input type="button" value="Double-clic = puissance
2"
onDblClick="document.calculer.valeur.value=docume
nt.calculer.valeur.value*document.calculer.valeur.val
ue">
</form>
</body></html>
Est approprié pour capter les messages d'erreur et les
remplacer par des messages personnalisés.
Attention pourtant, les erreurs ne sont pas pour
autant écartées!! onError est conçu avant tout pour
traiter les erreurs intervenant lors du chargement de
graphiques..
Exemple
/head><body>
<img src="yarien.gif" onError="alert('&agrave; cet
endroit devait figurer un graphique,n cependant il
ne peut malheureusement pas &ecirc;tre
affich&eacute; !')">
</body></html>
Entre en action si l'utilisateur bouge la souris
indépendamment du fait que la touche en soit appuyée ou
non.
Exemple
<html><head><title>Test</title>
<script language="JavaScript">
function controlesouris(Element) {
var Pos = Element.offsetLeft + "/" + Element.offsetTop;
window.status = Pos;
return true;
}
</script>
</head><body>
<p onMousemove="controlesouris(this)">Ici un petit
texte</p>
</body></html>
Entre en action quand l'utilisateur psse avec la souris
sur un élément et le quitte ensuite.
Exemple
<html><head>
<title>Test</title>
</head>
<body>
<a href="http://actuel.fr.selfhtml.org/nouvelles.htm"
onMouseout="alert('Vous devriez aller voir les
nouveaut&eacute;s')"><b>Quoi de neuf?</b></a>
</body>
</html>
Exemple
<html><head><title>Test</title>
</head><body>
<h1 id="Test"
onMouseover="this.innerHTML='Vous voyez?'"
onMouseout="this.innerHTML='Je suis
dynamique'">Je suis dynamique</h1>
</body></html>
L'objet Array (ou tableaux)
est une liste d'éléments
indexés dans lesquels on
pourra ranger (écrire) des
données ou aller reprendre
ces données (lire).
Évènement Action de l’utilisateur Balise HTML
onBlur Désélection d’un champ de saisie INPUT
onFocus Activation d’un champ de saisie INPUT
onSelect Sélection d’un champ de saisie INPUT
onChange Changement de valeur d’un champs
Changement de valeur d’une sélection
INPUT
SELECT
onmouseOver Passage de la souris sur un lien A
onClick Clique sur un lien
Clique sur un élément de formulaire
A
FORM
onSubmit Soumission de formulaire FORM
onLoad Chargement de la page BODY
onUnload Sortie du document BODY
Objets Gestionn aires d'événement disponibles
Fenêtre onLoad, onUnload
Lien hypertexte onClick, onmouseOver, on mouseOut
Elément de texte onBlur, onChange, onFocus, onSelect
Elément de zone de texte onBlur, onChange, onFocus, onSelect
Elément bouton onClick
Case à cocher onClick
Bouton Radio onClick
Liste de sélection Blur, onChange, onFocus
Bouton Submit onClick
Bouton Reset onClick
Pour faire un tableau, il faut procéder en deux
étapes :
d'abord construire la structure du tableau. A
ce stade, les éléments du tableau sont vides.
ensuite affecter des valeurs dans les cases
ainsi définies.
On commence par définir le tableau :
nom_du_tableau = new Array (x);
où x est le nombre d'élément du tableau.
On notera que, "le nombre d'éléments est
limité à 255. Cette restriction ne figure
pas dans la documentation de Netscape
mais elle a été constatée
expérimentalement." Source : Javascript
de Michel Dreyfus Collection Mégapoche.
Ensuite, on va alimenter la structure ainsi
définie :
nom_du_tableau[i] = "elément";
où i est un nombre compris entre 0 et x
moins 1.
Exemple : un carnet d'adresse avec 3 personnes
construction du tableau :
carnet = new Array(3);
ajout des données :
carnet[0]="Dupont";
carnet[1]="Médard";
carnet[2]="Van Lancker";
pour accéder un élément, on emploie :
document.write(carnet[2]);
On notera ici que les données sont bien
visibles au lecteur un peu initié (view source).
Remarques :
Quand on en aura l'occasion, il sera pratique
de charger le tableau avec une boucle.
Supposons que l'on ait à charger 50 images.
Soit on le fait manuellement, il faut charger
0.gif, 1.gif, 2.gif... Soit on utilise une
boucle du style :
Function gifs() {
gif = new Array(50);
for (var=i;i<50;i++)
{gif[i] =i+".gif";}
}
Javascript étant un langage peu typé, il n'est
pas nécessaire de déclarer le nombre
d'élément du tableau (soit x). Javascript
prendra comme nombre d'éléments, le
nombre i le plus élevé lors de "l'alimentation"
de la structure (en fait i + 1).Ainsi la
formulation suivante serait aussi correcte
pour un tableau à 3 dimensions.
carnet = new Array();
carnet[2]="Van Lancker";
join(separateur) concatène les cases du tableau avec le separateur
(JavaScript 1.1, ECMA)
pop() dépile et retourne le dernier élément du tableau
(Navigator 4)
push(val,...) ajoute des éléments au tableau (Navigator 4)
reverse() renverse le tableau (JavaScript 1.1, ECMA)
shift() supprime et retourne le 1er élément (Navigator 4)
slice(deb, fin) retourne une portion du tableau (JavaScript 1.2)
sort() tri des éléments (JavaScript 1.1, ECMA)
splice(deb, nbel, val,
...)
retire des éléments du tableau (Navigator 4)
toString() conversion du tableau en chaîne (JavaScript 1.1,
ECMA)
unshift(val,...) insère des éléments (Navigator 4)
var tab = new Array(); vide
tab.push('pomme','ananas','poire','ceri
se')
pomme ananas poire cerise
tab.push('abricot','raisin') pomme ananas poire cerise abricot raisin
tab.reverse() raisin abricot cerise poire ananas pomme
fruit = tab.pop()
raisin abricot cerise poire ananas
fruit = pomme
fruit = tab.shift()
abricot cerise poire ananas
fruit = raisin
tab.unshift('kiwi') kiwi abricot cerise poire ananas
liste_fruits = tab.splice(2,4)
kiwi abricot
liste_fruits = ["cerise", "poire", "ananas"]
tab.push('pomme','ananas','poire','ceri
se')
kiwi abricot pomme ananas poire cerise
tab.sort() abricot ananas cerise kiwi poire pomme
liste_fruits = tab.join(' - ')
liste_fruits = abricot - ananas - cerise - kiwi -
poire - pomme
liste_fruits = tab.slice(1,4)
abricot ananas cerise kiwi poire pomme
liste_fruits = ["ananas", "cerise", "kiwi"]
On peut créer des tableaux à deux dimensions (et plus
encore) par un petit artifice de programmation.
On déclare d'abord un tableau à 1 dimension de façon
classique :
nom_du_tableau = new Array (x);
Ensuite, on déclare chaque élément du tableau comme un
tableau à 1 dimension :
nom_du_tableau[i] = new Array(y);
Pour un tableau de 3 sur 3 :
Tarif T. Small T. Médium T. Large
Chemises 1200 1250 1300
Polos 800 850 900
T-shirts 500 520 540
nom = new Array(3);
nom[0] = new Array(3);
nom[1] = new Array(3);
nom[2] = new Array(3);
nom[0][0]="1200"; nom[0][1]="1250";
nom[0][2]="1300";
nom[1][0]="800"; nom[1][1]="850";
nom[1][2]="900";
nom[2][0]="500"; nom[2][1]="520";
nom[2][2]="540";
 Lorsque vous ouvrez une page Web, le navigateur
crée des objets prédéfinis correspondant à la
page Web, à l'état du navigateur, et peuvent
donner beaucoup d'informations qui vous seront
utiles.
26
 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 propriétés concernant la
fenêtre elle-même 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é visités précédemment
 document : il contient les propriétés sur le
contenu du document (couleur d'arrière plan,
titre, ...)
Ces objets sont largement dépendant du
contenu de la page. En effet, mis à part des
objets tels que navigator qui sont figés pour
un utilisateur donné, le contenu des autres
objets variera suivant le contenu de la page,
car suivant la page les objets présents dans
celles-ci (sous-objets des objets décrits
précédemment) sont différents. voyons voir
comment ceux-ci sont organisés
Les objets du navigateur sont classés
hiérarchiquement
Les objets du navigateur sont classés dans
une hiérarchie qui décrit la page affichée à
l'écran, et qui permet d'accéder à n'importe
quel objet grâce à une désignation dépendant
de la hiérarchie (on part du sommet puis on
descend l'arborescence).
30
window navigator
document
history
Plugins[]
Mimetypes[]
Forms[]
Images[]
links[]
(==hidden)
element[]
(==textArea)
(==button)
(==checkbox)
(==password)
(==radio)
(==reset)
(==selection)
(==submit)
(==text)
31
document
window
Formulaire
 Propriétés:
32
Propriété Description
appName Nom du browser
appVersion Version du browser
Langague Langage utiliséee: fr, en
appCodeName Nom du code (ex: Mozilla)
userAgent Chaine envoyée au serveur lors d’une requete HTTP
Plugins Tableau de tous les plug-ins installés sur le browser
Platform Type de la machine (ex: Win32, MacPPC,…)
mimeTypes Tableau de tous les types MIME reconnus par le browser
Avec Javascript, les formulaires Html prennent une
toute autre dimension. N'oublions pas qu'en
Javascript, on peut accéder à chaque élément
d'un formulaire pour, par exemple, y aller lire ou
écrire une valeur, noter un choix auquel on
pourra associer un gestionnaire d'événement...
Tous ces éléments renforceront grandement les
capacités interactives de vos pages.
Mettons au point le vocabulaire que nous
utiliserons. Un formulaire est l'élément Html
déclaré par les balises <FORM></FORM>. Un
formulaire contient un ou plusieurs éléments que
nous appellerons des contrôles (widgets). Ces
contrôles sont notés par exemple par la balise
<INPUT TYPE= ...>.
La déclaration d'un formulaire se fait par les
balises <FORM> et </FORM>. Il faut noter
qu'en Javascript, l'attribut
NAME="nom_du_formulaire" a toute son
importance pour désigner le chemin complet
des éléments. En outre, les attributs ACTION
et METHOD sont facultatifs pour autant que
vous ne faites pas appel au serveur.
La zone de texte est l'élément
d'entrée/sortie par excellence de
Javascript. La syntaxe Html est
<INPUT TYPE="text"
NAME="nom" SIZE=x
MAXLENGTH=y> pour un champ
de saisie d'une seule ligne, de
longueur x et de longueur
maximale de y.
Propriété Description
name indique le nom du contrôle par lequel
on pourra accéder.
defaultvalu
e
indique la valeur par défaut qui sera
affichée dans la zone de texte.
value indique la valeur en cours de la zone
de texte. Soit celle tapée par
l'utilisateur ou si celui-ci n'a rien tapé,
la valeur par défaut
Voici un exemple que nous détaillerons :
Voici une zone de texte. Entrez une valeur et
appuyer sur le bouton pour contrôler celle-ci.
Haut du formulaire
Bas du formulaire
Bas du formulaire
Le script complet est celui-ci :
<HTML>
<HEAD>
<SCRIPT LANGUAGE="javascript">
function controle(form1) {
var test = document.form1.input.value;
alert("Vous avez tapé : " + test);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="form1">
<INPUT TYPE="text" NAME="input" VALUE=""><BR>
<INPUT TYPE="button" NAME="bouton"
VALUE="Contrôler" onClick="controle(form1)">
</FORM>
</BODY>
</HTML>
Entrez une valeur quelconque dans la zone de
texte d'entrée. Appuyer sur le bouton pour
afficher cette valeur dans la zone de texte de
sortie.
Zone de texte d'entrée
Zone de texte de sortie
Voici le code :
<HTML>
<HEAD>
<SCRIPT LANGUAGE="javascript">
function afficher(form2) {
var testin =document. form2.input.value;
document.form2.output.value=testin
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="form2">
<INPUT TYPE="text" NAME="input" VALUE=""> Zone
de texte d'entrée <BR>
<INPUT TYPE="button" NAME="bouton"
VALUE="Afficher" onClick="afficher(form2)"><BR>
<INPUT TYPE="text" NAME="output" VALUE=""> Zone
de texte de sortie
</FORM>
</BODY>
</HTML>
Les boutons radio sont utilisés pour
noter un choix, et seulement un seul,
parmi un ensemble de propositions.
Propriété Description
name indique le nom du contrôle. Tous les boutons
portent le même nom.
index l'index ou le rang du bouton radio en
commençant par 0.
checked indique l'état en cours de l'élément radio
defaultchecked indique l'état du bouton sélectionné par défaut.
value indique la valeur de l'élément radio.
Prenons un exemple :
<HTML>
<HEAD>
<SCRIPT language="javascript">
function choixprop(form3) {
if (form3.choix[0].checked) { alert("Vous avez choisi la proposition "
+ form3.choix[0].value) };
if (form3.choix[1].checked) { alert("Vous avez choisi la proposition "
+ form3.choix[1].value) };
if (form3.choix[2].checked) { alert("Vous avez choisi la proposition "
+ form3.choix[2].value) };
}
</SCRIPT>
</HEAD>
<BODY>
Entrez votre choix :
<FORM NAME="form3">
<INPUT TYPE="radio" NAME="choix" VALUE="1">Choix numéro
1<BR>
<INPUT TYPE="radio" NAME="choix" VALUE="2">Choix numéro
2<BR>
<INPUT TYPE="radio" NAME="choix" VALUE="3">Choix numéro
3<BR>
<INPUT TYPE="button"NAME="but" VALUE="Quel et votre choix ?"
onClick="choixprop(form3)">
</FORM>
</BODY>
</HTML>
Les boutons case à cocher sont utilisés pour
noter un ou plusieurs choix (pour rappel avec les
boutons radio un seul choix) parmi un ensemble
de propositions. A part cela, sa syntaxe et son
usage est tout à fait semblable aux boutons radio
sauf en ce qui concerne l'attribut name.
Propriété Description
name indique le nom du contrôle. Toutes les
cases à cocher portent un nom différent.
checked indique l'état en cours de l'élément case à
cocher.
defaultchecked indique l'état du bouton sélectionné par
défaut.
value indique la valeur de l'élément case à cocher.
Entrez votre choix :
Il faut sélectionner les numéros 1,2 et 4 pour
avoir la bonne réponse.
Haut du formulaire
Choix numéro 1
Choix numéro 2
Choix numéro 3
Choix numéro 4
<HTML>
<HEAD>
<script language="javascript">
function reponse(form4) {
if ( (form4.check1.checked) == true &&
(form4.check2.checked) == true &&
(form4.check3.checked) == false &&
(form4.check4.checked) == true)
{ alert("C'est la bonne réponse! ") }
else
{alert("Désolé, continuez à chercher.")}
}
</SCRIPT>
</HEAD>
<BODY>
Entrez votre choix :
<FORM NAME="form4">
<INPUT TYPE="CHECKBOX" NAME="check1"
VALUE="1">Choix numéro 1<BR>
<INPUT TYPE="CHECKBOX" NAME="check2"
VALUE="2">Choix numéro 2<BR>
<INPUT TYPE="CHECKBOX" NAME="check3"
VALUE="3">Choix numéro 3<BR>
<INPUT TYPE="CHECKBOX" NAME="check4"
VALUE="4">Choix numéro 4<BR>
<INPUT TYPE="button"NAME="but"
VALUE="Corriger" onClick="reponse(form4)">
</FORM>
</BODY>
</HTML>
Le contrôle liste de sélection vous permet de
proposer diverses options sous la forme
d'une liste déroulante dans laquelle
l'utilisateur peut cliquer pour faire son choix.
Ce choix reste alors affiché.
La boite de la liste est crée par la balise
<SELECT> et les éléments de la liste par un
ou plusieurs tags <OPTION>. La balise
</SELECT> termine la liste.
Propriété Description
name indique le nom de la liste déroulante.
length indique le nombre d'éléments de la
liste. S'il est indiqué dans le tag
<SELECT>, tous les éléments de la
liste seront affichés. Si vous ne
l'indiquez pas un seul apparaîtra dans
la boite de la liste déroulante.
selectedIndex indique le rang à partir de 0 de
l'élément de la liste qui a été
sélectionné par l'utilisateur.
defaultselected indique l'élément de la liste
sélectionné par défaut. C'est lui qui
apparaît alors dans la petite boite.
Un petit exemple comme d'habitude :
Entrez votre choix :
<HTML>
<HEAD>
<script language="javascript"> function liste(form5) {
alert("L'élément " + (form5.list.selectedIndex + 1)); }
</SCRIPT>
</HEAD>
<BODY>
Entrez votre choix : <FORM NAME="form5">
<SELECT NAME="list">
<OPTION VALUE="1">Elément 1
<OPTION VALUE="2">Elément 2
<OPTION VALUE="3">Elément 3
</SELECT>
<INPUT TYPE="button"NAME="b" VALUE="Quel est l'élément retenu?"
onClick="liste(form5)"> </FORM>
</BODY>
</HTML>
Elément 1
L'objet textarea est une zone de texte de
plusieurs lignes.
La syntaxe Html est :
<FORM>
<TEXTAREA NAME="nom" ROWS=x COLS=y>
texte par défaut
</TEXTAREA>
</FORM>
où ROWS=x représente le nombre de lignes et
COLS=y représente le nombre de colonnes.
L'objet textarea possède plusieurs propriétés :
texte par défaut
Propriété Description
name indique le nom du contrôle par lequel
on pourra accéder.
defaultvalue indique la valeur par défaut qui sera
affichée dans la zone de texte.
value indique la valeur en cours de la zone
de texte. Soit celle tapée par
l'utilisateur ou si celui-ci n'a rien tapé,
la valeur par défaut
Le contrôle Reset permet d'annuler les
modifications apportées aux contrôles
d'un formulaire et de restaurer les valeurs
par défaut.
la syntaxe Html est :
<INPUT TYPE="reset" NAME="nom"
VALUE="texte">
où VALUE donne le texte du bouton.
Une seule méthode est
associée au contrôle Reset,
c'est la méthode onClick(). Ce
qui peut servir, par exemple,
pour faire afficher une autre
valeur que celle par défaut.
Le contrôle a la tâche spécifique de
transmettre toutes les informations
contenues dans le formulaire à l'URL désignée
dans l'attribut ACTION du tag <FORM>.
la syntaxe Html est :
<INPUT TYPE="submit" NAME="nom"
VALUE="texte">
où VALUE donne le texte du bouton.
Une seule méthode est associée au contrôle
Submit, c'est la méthode onClick().
Un "Cookie" est une chaîne de caractères qu'une
page HTML (contenant du code JavaScript) peut
écrire à un emplacement UNIQUE et bien défini
sur le disque dur du client.
Cette chaîne de caractères ne peut être lue que par
le seul serveur qui l'a générée.
Transmettre des valeurs (contenu de variables)
d'une page HTML à une autre.
Par exemple, créer un site marchand et
constituer un "caddie" pour le client. Caddie
qui restera sur son poste et vous permettra
d'évaluer la facture finale au bout de la
commande. Sans faire appel à quelque
serveur que ce soit.
Personnaliser les pages présentées à
l'utilisateur en reprenant par exemple son nom
en haut de chaque page.
On ne peut pas écrire autant de cookies que l'on
veut sur le poste de l'utilisateur (client d’une
page). Il y a des limites :
 Limites en nombre : Un seul serveur (ou
domaine) ne peut pas être autorisé à écrire plus
de 20 cookies.
 Limites en taille : un cookie ne peut excéder 4
Ko.
 Limites du poste client : Un poste client ne peut
stocker plus de 300 cookies en tout.
 En général, ils sont pour Netscape, dans
le répertoire de l'utilisateur (si il y a des
profils différents) sous le nom de
"cookie.txt".
 Microsoft Internet Explorer stocke les
cookies dans des répertoires tels que
"C:WINDOWSCookies" ou encore
"C:WINDOWSTEMPCookies".
Nom=Contenu; expires=expdate; path=Chemin;
domain=NomDeDomaine; secure
Nom=Contenu;
 Sont deux variables suivies d'un ";" . Elles représentent
l'en-tête du cookie.
 La variable Nom contient le nom à donner au cookie.
 La variable Contenu contient le contenu du cookie
 Exemple ma_cookie=« oui:visite»
Expires= expdate;
Le mot réservé expires suivi du signe "=" (égal).
Derrière ce signe, vous mettrez une date
d'expiration représentant la date à laquelle le
cookie sera supprimé du disque dur du client.
La date d’expiration doit être au format :
Wdy, DD-Mon-YYYY HH:MM:SS GMT
Utiliser les fonctions de l'objet Date
Règle générale : 'indiquer un délai en nombre
de jours (ou d'années) avant disparition du
Cookie.
path=Chemin;
path représente le chemin de la page qui a créé le
cookie.
domain=NomDeDomaine;
domain représente le nom du domaine de cette
même page
secure
secure prend les valeurs "true" ou "false" selon
que le cookie doit utiliser des protocoles HTTP
simples (non sécurisés) ou HTTPS (sécurisés).
Les arguments path, domain et secure sont
facultatifs.
lorsque ces arguments sont omis, les valeurs
par défaut sont prises.
Pour secure, la valeur est "False" par défaut.
Ecrire un cookie
Un cookie est une propriété de
l'objet document (la page HTML
chargée dans le navigateur) alors
l’intruction d’écriture de cookie est:
document.cookie = Nom + "=" +
Contenu + "; expires=" +
expdate.toGMTString() ;
 var Nom = "MonCookie" ; // nom du cookie
 var Contenu = "Hé... Vous avez un cookie sur
votre disque !" ; // contenu du cookie
 var expdate = new Date () ; // crée un objet
date indispensable
 puis rajoutons lui 10 jours d'existence :
 expdate.setTime (expdate.getTime() + ( 10 *
24 * 60 * 60 * 1000)) ;
 document.cookie = Nom + "=" + Contenu +
"; expires=" + expdate.toGMTString() ;
 Lecture d'un cookie
 Accéder à la propriété cookie de l'objet
document.
 Document.cookie
 Exemple
var LesCookies ; // pour voir les cookies
LesCookies = document.cookie ; // on met les
cookies dans la variable LesCookies
 Modification d'un cookie
Modifier le contenu de la variable Contenu puis
réécrire le cookie sur le disque dur du client
 Contenu = "Le cookie a été modifié..." ; //
nouveau contenu
 document.cookie = Nom + "=" + Contenu
+ "; expires=" + expdate.toGMTString() ; //
écriture sur le disque
Positionner la date de péremption du cookie à
une valeur inférieure à celle du moment où
on l'écrit sur le disque.
Exemple
// on enlève une seconde (ça suffit mais c'est
nécessaire)
expdate.setTime (expdate.getTime() - (1000)) ;
// écriture sur le disque
document.cookie = Nom + "=" + Contenu + ";
expires=" + expdate.toGMTString() ;
Création de menus
– On cherche à créer des menus hiérarchiques,
comme cidessous
– En passant sur un menu, il passe au gris clair
• En cliquant sur Menu 2, des sous-menus
apparaissent. Il
sont cliquables
 Pour lier les menus et les sous-menus : on
utilise les listes de définition <DL>
– Les listes de définitions comportent deux
parties,
un terme et une description
– Pour marquer une liste de définitions, il
vous faut trois éléments HTML :
un <dl> conteneur,
un terme de définition <dt>,
et une description de définition <dd>
Par exemple :
<dl>
<dt>Grenouille</dt>
<dd>Truc vert humide</dd>
<dt>Lapin</dt>
<dd>Truc chaud et doux</dd>
</dl>
<dl id="menu">
<dt onclick="javascript:montre();"><a
href="#">Menu1</a></dt>
<dt onclick="javascript:montre('smenu2');">Menu2</dt>
<dd id="smenu2">
<ul>
<li><a href="#">Sous-Menu 2.1</a></li>
<li><a href="#">Sous-Menu 2.2</a></li>
<li><a href="#">Sous-Menu 2.3</a></li>
</ul>
</dd>
<dt
onclick="javascript:montre('smenu3');">Menu
3</dt>
<dd id="smenu3">
<ul>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
</ul>
</dd>
<dt
onclick="javascript:montre('smenu4');">Menu
4</dt>
<dd id="smenu4">
<ul>
<li><a href="#">Sous-Menu 4.1</a></li>
<li><a href="#">Sous-Menu 4.1</a></li>
</ul>
</dd>
</dl>
</body>
<script type="text/javascript">
<!--
window.onload=montre; //montre le menu principal au
chargement
function montre(id) {
var d = document.getElementById(id);
//On cache les sous-menus
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i))
{document.getElementById('smenu'+i).
style.display='none';}
}
//On affiche le sous-menu
if (d) {d.style.display='block';}
}
//-->
</script>

Contenu connexe

Similaire à Cours JavaScript 2.ppt

Similaire à Cours JavaScript 2.ppt (20)

La puissance des pseudo-éléments
La puissance des pseudo-élémentsLa puissance des pseudo-éléments
La puissance des pseudo-éléments
 
JQuery
JQueryJQuery
JQuery
 
FORMATION javascript.pdf
FORMATION javascript.pdfFORMATION javascript.pdf
FORMATION javascript.pdf
 
1-Introduction JQuery.pptx
1-Introduction JQuery.pptx1-Introduction JQuery.pptx
1-Introduction JQuery.pptx
 
Js part2
Js part2Js part2
Js part2
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Tapestry
TapestryTapestry
Tapestry
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Cours JavaScript.ppt
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.ppt
 
Cours wpf avancé
Cours wpf avancéCours wpf avancé
Cours wpf avancé
 
M31_Chapitre 4-JavaScript.pdf
M31_Chapitre 4-JavaScript.pdfM31_Chapitre 4-JavaScript.pdf
M31_Chapitre 4-JavaScript.pdf
 
Apprenez le jQuery
Apprenez le jQueryApprenez le jQuery
Apprenez le jQuery
 
Tp-jquery
Tp-jqueryTp-jquery
Tp-jquery
 
Slides Js
Slides JsSlides Js
Slides Js
 
Introduction a jQuery
Introduction a jQueryIntroduction a jQuery
Introduction a jQuery
 
Marzouk collection-map
Marzouk collection-mapMarzouk collection-map
Marzouk collection-map
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 

Plus de PROFPROF11

Explication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptxExplication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptxPROFPROF11
 
La récursivité.pptx
La récursivité.pptxLa récursivité.pptx
La récursivité.pptxPROFPROF11
 
prc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptprc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptPROFPROF11
 
TP N°1 sketchup.ppt
TP N°1 sketchup.pptTP N°1 sketchup.ppt
TP N°1 sketchup.pptPROFPROF11
 
Serie_fichiers.ppsx
Serie_fichiers.ppsxSerie_fichiers.ppsx
Serie_fichiers.ppsxPROFPROF11
 
exercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptxexercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptxPROFPROF11
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 
Prototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptxPrototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptxPROFPROF11
 
Tableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxTableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxPROFPROF11
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.pptPROFPROF11
 
les interfaces graphiques.pptx
les interfaces graphiques.pptxles interfaces graphiques.pptx
les interfaces graphiques.pptxPROFPROF11
 

Plus de PROFPROF11 (13)

Explication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptxExplication ajouter dans un fichier.pptx
Explication ajouter dans un fichier.pptx
 
La récursivité.pptx
La récursivité.pptxLa récursivité.pptx
La récursivité.pptx
 
prc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).pptprc3a9sentation-de-scratch (1).ppt
prc3a9sentation-de-scratch (1).ppt
 
IoT.pptx
IoT.pptxIoT.pptx
IoT.pptx
 
TP N°1 sketchup.ppt
TP N°1 sketchup.pptTP N°1 sketchup.ppt
TP N°1 sketchup.ppt
 
Serie_fichiers.ppsx
Serie_fichiers.ppsxSerie_fichiers.ppsx
Serie_fichiers.ppsx
 
exercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptxexercice corrigé 2TI1.pptx
exercice corrigé 2TI1.pptx
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
Prototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptxPrototype Théorique EG 2022.pptx
Prototype Théorique EG 2022.pptx
 
Tableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxTableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptx
 
seance 2.ppt
seance 2.pptseance 2.ppt
seance 2.ppt
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.ppt
 
les interfaces graphiques.pptx
les interfaces graphiques.pptxles interfaces graphiques.pptx
les interfaces graphiques.pptx
 

Cours JavaScript 2.ppt

  • 1.
  • 2.
  • 3. Avec les événements et surtout leur gestion, nous abordons le côté "magique" de Javascript. En Html classique, il y a un événement que vous connaissez bien. C'est le clic de la souris sur un lien pour vous transporter sur une autre page Web. Hélas, c'est à peu près le seul. Heureusement, Javascript va en ajouter une bonne dizaine, pour votre plus grand plaisir. Les événements Javascript, associés aux fonctions, aux méthodes et aux formulaires, ouvrent grand la porte pour une réelle interactivité de vos pages.
  • 4. onChange (après modification réussie) Est prévu pour le cas où un utilisateur appuie sur le bouton stop du navigateur, alors que tous les graphiques ne sont pas encore chargés.
  • 5. Exemple <html> <head> <title>Test</title> </head> <body> <form name="Test" action=""> <textarea rows="5" cols="40" onChange="alert(this.value)">Modifiez ce texte et cliquez ailleurs! </textarea> </body> </html>
  • 6. onClick (en cliquant) Au cas où l'utilisateur clique sur un élément. Exemple <html><head><title>Test</title> </head><body> <form name="Test" action=""> <input size="30" name="sortie" readonly><br> <input type="button" value="Derni&egrave;re mise &agrave; jour" onClick="this.form.sortie.value=document.lastM odified"> </form> </body></html>
  • 7. Au cas où l'utilisateur double-clique sur un élément. Exemple <html><head><title>Test</title> </head><body> <form name="calculer" action=""> Valeur: <input size="10" name="valeur"> <input type="button" value="Double-clic = puissance 2" onDblClick="document.calculer.valeur.value=docume nt.calculer.valeur.value*document.calculer.valeur.val ue"> </form> </body></html>
  • 8. Est approprié pour capter les messages d'erreur et les remplacer par des messages personnalisés. Attention pourtant, les erreurs ne sont pas pour autant écartées!! onError est conçu avant tout pour traiter les erreurs intervenant lors du chargement de graphiques.. Exemple /head><body> <img src="yarien.gif" onError="alert('&agrave; cet endroit devait figurer un graphique,n cependant il ne peut malheureusement pas &ecirc;tre affich&eacute; !')"> </body></html>
  • 9. Entre en action si l'utilisateur bouge la souris indépendamment du fait que la touche en soit appuyée ou non. Exemple <html><head><title>Test</title> <script language="JavaScript"> function controlesouris(Element) { var Pos = Element.offsetLeft + "/" + Element.offsetTop; window.status = Pos; return true; } </script> </head><body> <p onMousemove="controlesouris(this)">Ici un petit texte</p> </body></html>
  • 10. Entre en action quand l'utilisateur psse avec la souris sur un élément et le quitte ensuite. Exemple <html><head> <title>Test</title> </head> <body> <a href="http://actuel.fr.selfhtml.org/nouvelles.htm" onMouseout="alert('Vous devriez aller voir les nouveaut&eacute;s')"><b>Quoi de neuf?</b></a> </body> </html>
  • 12.
  • 13. L'objet Array (ou tableaux) est une liste d'éléments indexés dans lesquels on pourra ranger (écrire) des données ou aller reprendre ces données (lire).
  • 14. Évènement Action de l’utilisateur Balise HTML onBlur Désélection d’un champ de saisie INPUT onFocus Activation d’un champ de saisie INPUT onSelect Sélection d’un champ de saisie INPUT onChange Changement de valeur d’un champs Changement de valeur d’une sélection INPUT SELECT onmouseOver Passage de la souris sur un lien A onClick Clique sur un lien Clique sur un élément de formulaire A FORM onSubmit Soumission de formulaire FORM onLoad Chargement de la page BODY onUnload Sortie du document BODY
  • 15. Objets Gestionn aires d'événement disponibles Fenêtre onLoad, onUnload Lien hypertexte onClick, onmouseOver, on mouseOut Elément de texte onBlur, onChange, onFocus, onSelect Elément de zone de texte onBlur, onChange, onFocus, onSelect Elément bouton onClick Case à cocher onClick Bouton Radio onClick Liste de sélection Blur, onChange, onFocus Bouton Submit onClick Bouton Reset onClick
  • 16. Pour faire un tableau, il faut procéder en deux étapes : d'abord construire la structure du tableau. A ce stade, les éléments du tableau sont vides. ensuite affecter des valeurs dans les cases ainsi définies. On commence par définir le tableau : nom_du_tableau = new Array (x); où x est le nombre d'élément du tableau.
  • 17. On notera que, "le nombre d'éléments est limité à 255. Cette restriction ne figure pas dans la documentation de Netscape mais elle a été constatée expérimentalement." Source : Javascript de Michel Dreyfus Collection Mégapoche. Ensuite, on va alimenter la structure ainsi définie : nom_du_tableau[i] = "elément"; où i est un nombre compris entre 0 et x moins 1.
  • 18. Exemple : un carnet d'adresse avec 3 personnes construction du tableau : carnet = new Array(3); ajout des données : carnet[0]="Dupont"; carnet[1]="Médard"; carnet[2]="Van Lancker"; pour accéder un élément, on emploie : document.write(carnet[2]); On notera ici que les données sont bien visibles au lecteur un peu initié (view source).
  • 19. Remarques : Quand on en aura l'occasion, il sera pratique de charger le tableau avec une boucle. Supposons que l'on ait à charger 50 images. Soit on le fait manuellement, il faut charger 0.gif, 1.gif, 2.gif... Soit on utilise une boucle du style : Function gifs() { gif = new Array(50); for (var=i;i<50;i++) {gif[i] =i+".gif";} }
  • 20. Javascript étant un langage peu typé, il n'est pas nécessaire de déclarer le nombre d'élément du tableau (soit x). Javascript prendra comme nombre d'éléments, le nombre i le plus élevé lors de "l'alimentation" de la structure (en fait i + 1).Ainsi la formulation suivante serait aussi correcte pour un tableau à 3 dimensions. carnet = new Array(); carnet[2]="Van Lancker";
  • 21. join(separateur) concatène les cases du tableau avec le separateur (JavaScript 1.1, ECMA) pop() dépile et retourne le dernier élément du tableau (Navigator 4) push(val,...) ajoute des éléments au tableau (Navigator 4) reverse() renverse le tableau (JavaScript 1.1, ECMA) shift() supprime et retourne le 1er élément (Navigator 4) slice(deb, fin) retourne une portion du tableau (JavaScript 1.2) sort() tri des éléments (JavaScript 1.1, ECMA) splice(deb, nbel, val, ...) retire des éléments du tableau (Navigator 4) toString() conversion du tableau en chaîne (JavaScript 1.1, ECMA) unshift(val,...) insère des éléments (Navigator 4)
  • 22. var tab = new Array(); vide tab.push('pomme','ananas','poire','ceri se') pomme ananas poire cerise tab.push('abricot','raisin') pomme ananas poire cerise abricot raisin tab.reverse() raisin abricot cerise poire ananas pomme fruit = tab.pop() raisin abricot cerise poire ananas fruit = pomme fruit = tab.shift() abricot cerise poire ananas fruit = raisin tab.unshift('kiwi') kiwi abricot cerise poire ananas liste_fruits = tab.splice(2,4) kiwi abricot liste_fruits = ["cerise", "poire", "ananas"] tab.push('pomme','ananas','poire','ceri se') kiwi abricot pomme ananas poire cerise tab.sort() abricot ananas cerise kiwi poire pomme liste_fruits = tab.join(' - ') liste_fruits = abricot - ananas - cerise - kiwi - poire - pomme liste_fruits = tab.slice(1,4) abricot ananas cerise kiwi poire pomme liste_fruits = ["ananas", "cerise", "kiwi"]
  • 23. On peut créer des tableaux à deux dimensions (et plus encore) par un petit artifice de programmation. On déclare d'abord un tableau à 1 dimension de façon classique : nom_du_tableau = new Array (x); Ensuite, on déclare chaque élément du tableau comme un tableau à 1 dimension : nom_du_tableau[i] = new Array(y); Pour un tableau de 3 sur 3 : Tarif T. Small T. Médium T. Large Chemises 1200 1250 1300 Polos 800 850 900 T-shirts 500 520 540
  • 24. nom = new Array(3); nom[0] = new Array(3); nom[1] = new Array(3); nom[2] = new Array(3); nom[0][0]="1200"; nom[0][1]="1250"; nom[0][2]="1300"; nom[1][0]="800"; nom[1][1]="850"; nom[1][2]="900"; nom[2][0]="500"; nom[2][1]="520"; nom[2][2]="540";
  • 25.
  • 26.  Lorsque vous ouvrez une page Web, le navigateur crée des objets prédéfinis correspondant à la page Web, à l'état du navigateur, et peuvent donner beaucoup d'informations qui vous seront utiles. 26
  • 27.  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 propriétés concernant la fenêtre elle-même 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é visités précédemment  document : il contient les propriétés sur le contenu du document (couleur d'arrière plan, titre, ...)
  • 28. Ces objets sont largement dépendant du contenu de la page. En effet, mis à part des objets tels que navigator qui sont figés pour un utilisateur donné, le contenu des autres objets variera suivant le contenu de la page, car suivant la page les objets présents dans celles-ci (sous-objets des objets décrits précédemment) sont différents. voyons voir comment ceux-ci sont organisés
  • 29. Les objets du navigateur sont classés hiérarchiquement Les objets du navigateur sont classés dans une hiérarchie qui décrit la page affichée à l'écran, et qui permet d'accéder à n'importe quel objet grâce à une désignation dépendant de la hiérarchie (on part du sommet puis on descend l'arborescence).
  • 32.  Propriétés: 32 Propriété Description appName Nom du browser appVersion Version du browser Langague Langage utiliséee: fr, en appCodeName Nom du code (ex: Mozilla) userAgent Chaine envoyée au serveur lors d’une requete HTTP Plugins Tableau de tous les plug-ins installés sur le browser Platform Type de la machine (ex: Win32, MacPPC,…) mimeTypes Tableau de tous les types MIME reconnus par le browser
  • 33.
  • 34. Avec Javascript, les formulaires Html prennent une toute autre dimension. N'oublions pas qu'en Javascript, on peut accéder à chaque élément d'un formulaire pour, par exemple, y aller lire ou écrire une valeur, noter un choix auquel on pourra associer un gestionnaire d'événement... Tous ces éléments renforceront grandement les capacités interactives de vos pages. Mettons au point le vocabulaire que nous utiliserons. Un formulaire est l'élément Html déclaré par les balises <FORM></FORM>. Un formulaire contient un ou plusieurs éléments que nous appellerons des contrôles (widgets). Ces contrôles sont notés par exemple par la balise <INPUT TYPE= ...>.
  • 35. La déclaration d'un formulaire se fait par les balises <FORM> et </FORM>. Il faut noter qu'en Javascript, l'attribut NAME="nom_du_formulaire" a toute son importance pour désigner le chemin complet des éléments. En outre, les attributs ACTION et METHOD sont facultatifs pour autant que vous ne faites pas appel au serveur.
  • 36. La zone de texte est l'élément d'entrée/sortie par excellence de Javascript. La syntaxe Html est <INPUT TYPE="text" NAME="nom" SIZE=x MAXLENGTH=y> pour un champ de saisie d'une seule ligne, de longueur x et de longueur maximale de y.
  • 37. Propriété Description name indique le nom du contrôle par lequel on pourra accéder. defaultvalu e indique la valeur par défaut qui sera affichée dans la zone de texte. value indique la valeur en cours de la zone de texte. Soit celle tapée par l'utilisateur ou si celui-ci n'a rien tapé, la valeur par défaut
  • 38. Voici un exemple que nous détaillerons : Voici une zone de texte. Entrez une valeur et appuyer sur le bouton pour contrôler celle-ci. Haut du formulaire Bas du formulaire Bas du formulaire Le script complet est celui-ci :
  • 39. <HTML> <HEAD> <SCRIPT LANGUAGE="javascript"> function controle(form1) { var test = document.form1.input.value; alert("Vous avez tapé : " + test); } </SCRIPT> </HEAD> <BODY> <FORM NAME="form1"> <INPUT TYPE="text" NAME="input" VALUE=""><BR> <INPUT TYPE="button" NAME="bouton" VALUE="Contrôler" onClick="controle(form1)"> </FORM> </BODY> </HTML>
  • 40. Entrez une valeur quelconque dans la zone de texte d'entrée. Appuyer sur le bouton pour afficher cette valeur dans la zone de texte de sortie. Zone de texte d'entrée Zone de texte de sortie
  • 41. Voici le code : <HTML> <HEAD> <SCRIPT LANGUAGE="javascript"> function afficher(form2) { var testin =document. form2.input.value; document.form2.output.value=testin } </SCRIPT> </HEAD> <BODY> <FORM NAME="form2"> <INPUT TYPE="text" NAME="input" VALUE=""> Zone de texte d'entrée <BR> <INPUT TYPE="button" NAME="bouton" VALUE="Afficher" onClick="afficher(form2)"><BR> <INPUT TYPE="text" NAME="output" VALUE=""> Zone de texte de sortie </FORM> </BODY> </HTML>
  • 42. Les boutons radio sont utilisés pour noter un choix, et seulement un seul, parmi un ensemble de propositions. Propriété Description name indique le nom du contrôle. Tous les boutons portent le même nom. index l'index ou le rang du bouton radio en commençant par 0. checked indique l'état en cours de l'élément radio defaultchecked indique l'état du bouton sélectionné par défaut. value indique la valeur de l'élément radio.
  • 43. Prenons un exemple : <HTML> <HEAD> <SCRIPT language="javascript"> function choixprop(form3) { if (form3.choix[0].checked) { alert("Vous avez choisi la proposition " + form3.choix[0].value) }; if (form3.choix[1].checked) { alert("Vous avez choisi la proposition " + form3.choix[1].value) }; if (form3.choix[2].checked) { alert("Vous avez choisi la proposition " + form3.choix[2].value) }; } </SCRIPT> </HEAD> <BODY> Entrez votre choix : <FORM NAME="form3"> <INPUT TYPE="radio" NAME="choix" VALUE="1">Choix numéro 1<BR> <INPUT TYPE="radio" NAME="choix" VALUE="2">Choix numéro 2<BR> <INPUT TYPE="radio" NAME="choix" VALUE="3">Choix numéro 3<BR> <INPUT TYPE="button"NAME="but" VALUE="Quel et votre choix ?" onClick="choixprop(form3)"> </FORM> </BODY> </HTML>
  • 44. Les boutons case à cocher sont utilisés pour noter un ou plusieurs choix (pour rappel avec les boutons radio un seul choix) parmi un ensemble de propositions. A part cela, sa syntaxe et son usage est tout à fait semblable aux boutons radio sauf en ce qui concerne l'attribut name. Propriété Description name indique le nom du contrôle. Toutes les cases à cocher portent un nom différent. checked indique l'état en cours de l'élément case à cocher. defaultchecked indique l'état du bouton sélectionné par défaut. value indique la valeur de l'élément case à cocher.
  • 45. Entrez votre choix : Il faut sélectionner les numéros 1,2 et 4 pour avoir la bonne réponse. Haut du formulaire Choix numéro 1 Choix numéro 2 Choix numéro 3 Choix numéro 4
  • 46. <HTML> <HEAD> <script language="javascript"> function reponse(form4) { if ( (form4.check1.checked) == true && (form4.check2.checked) == true && (form4.check3.checked) == false && (form4.check4.checked) == true) { alert("C'est la bonne réponse! ") } else {alert("Désolé, continuez à chercher.")} } </SCRIPT> </HEAD> <BODY>
  • 47. Entrez votre choix : <FORM NAME="form4"> <INPUT TYPE="CHECKBOX" NAME="check1" VALUE="1">Choix numéro 1<BR> <INPUT TYPE="CHECKBOX" NAME="check2" VALUE="2">Choix numéro 2<BR> <INPUT TYPE="CHECKBOX" NAME="check3" VALUE="3">Choix numéro 3<BR> <INPUT TYPE="CHECKBOX" NAME="check4" VALUE="4">Choix numéro 4<BR> <INPUT TYPE="button"NAME="but" VALUE="Corriger" onClick="reponse(form4)"> </FORM> </BODY> </HTML>
  • 48. Le contrôle liste de sélection vous permet de proposer diverses options sous la forme d'une liste déroulante dans laquelle l'utilisateur peut cliquer pour faire son choix. Ce choix reste alors affiché. La boite de la liste est crée par la balise <SELECT> et les éléments de la liste par un ou plusieurs tags <OPTION>. La balise </SELECT> termine la liste.
  • 49. Propriété Description name indique le nom de la liste déroulante. length indique le nombre d'éléments de la liste. S'il est indiqué dans le tag <SELECT>, tous les éléments de la liste seront affichés. Si vous ne l'indiquez pas un seul apparaîtra dans la boite de la liste déroulante. selectedIndex indique le rang à partir de 0 de l'élément de la liste qui a été sélectionné par l'utilisateur. defaultselected indique l'élément de la liste sélectionné par défaut. C'est lui qui apparaît alors dans la petite boite.
  • 50. Un petit exemple comme d'habitude : Entrez votre choix : <HTML> <HEAD> <script language="javascript"> function liste(form5) { alert("L'élément " + (form5.list.selectedIndex + 1)); } </SCRIPT> </HEAD> <BODY> Entrez votre choix : <FORM NAME="form5"> <SELECT NAME="list"> <OPTION VALUE="1">Elément 1 <OPTION VALUE="2">Elément 2 <OPTION VALUE="3">Elément 3 </SELECT> <INPUT TYPE="button"NAME="b" VALUE="Quel est l'élément retenu?" onClick="liste(form5)"> </FORM> </BODY> </HTML> Elément 1
  • 51. L'objet textarea est une zone de texte de plusieurs lignes. La syntaxe Html est : <FORM> <TEXTAREA NAME="nom" ROWS=x COLS=y> texte par défaut </TEXTAREA> </FORM>
  • 52. où ROWS=x représente le nombre de lignes et COLS=y représente le nombre de colonnes. L'objet textarea possède plusieurs propriétés : texte par défaut
  • 53. Propriété Description name indique le nom du contrôle par lequel on pourra accéder. defaultvalue indique la valeur par défaut qui sera affichée dans la zone de texte. value indique la valeur en cours de la zone de texte. Soit celle tapée par l'utilisateur ou si celui-ci n'a rien tapé, la valeur par défaut
  • 54. Le contrôle Reset permet d'annuler les modifications apportées aux contrôles d'un formulaire et de restaurer les valeurs par défaut. la syntaxe Html est : <INPUT TYPE="reset" NAME="nom" VALUE="texte"> où VALUE donne le texte du bouton.
  • 55. Une seule méthode est associée au contrôle Reset, c'est la méthode onClick(). Ce qui peut servir, par exemple, pour faire afficher une autre valeur que celle par défaut.
  • 56. Le contrôle a la tâche spécifique de transmettre toutes les informations contenues dans le formulaire à l'URL désignée dans l'attribut ACTION du tag <FORM>. la syntaxe Html est : <INPUT TYPE="submit" NAME="nom" VALUE="texte"> où VALUE donne le texte du bouton. Une seule méthode est associée au contrôle Submit, c'est la méthode onClick().
  • 57.
  • 58. Un "Cookie" est une chaîne de caractères qu'une page HTML (contenant du code JavaScript) peut écrire à un emplacement UNIQUE et bien défini sur le disque dur du client. Cette chaîne de caractères ne peut être lue que par le seul serveur qui l'a générée.
  • 59. Transmettre des valeurs (contenu de variables) d'une page HTML à une autre. Par exemple, créer un site marchand et constituer un "caddie" pour le client. Caddie qui restera sur son poste et vous permettra d'évaluer la facture finale au bout de la commande. Sans faire appel à quelque serveur que ce soit. Personnaliser les pages présentées à l'utilisateur en reprenant par exemple son nom en haut de chaque page.
  • 60. On ne peut pas écrire autant de cookies que l'on veut sur le poste de l'utilisateur (client d’une page). Il y a des limites :  Limites en nombre : Un seul serveur (ou domaine) ne peut pas être autorisé à écrire plus de 20 cookies.  Limites en taille : un cookie ne peut excéder 4 Ko.  Limites du poste client : Un poste client ne peut stocker plus de 300 cookies en tout.
  • 61.  En général, ils sont pour Netscape, dans le répertoire de l'utilisateur (si il y a des profils différents) sous le nom de "cookie.txt".  Microsoft Internet Explorer stocke les cookies dans des répertoires tels que "C:WINDOWSCookies" ou encore "C:WINDOWSTEMPCookies".
  • 62. Nom=Contenu; expires=expdate; path=Chemin; domain=NomDeDomaine; secure Nom=Contenu;  Sont deux variables suivies d'un ";" . Elles représentent l'en-tête du cookie.  La variable Nom contient le nom à donner au cookie.  La variable Contenu contient le contenu du cookie  Exemple ma_cookie=« oui:visite»
  • 63. Expires= expdate; Le mot réservé expires suivi du signe "=" (égal). Derrière ce signe, vous mettrez une date d'expiration représentant la date à laquelle le cookie sera supprimé du disque dur du client. La date d’expiration doit être au format : Wdy, DD-Mon-YYYY HH:MM:SS GMT Utiliser les fonctions de l'objet Date Règle générale : 'indiquer un délai en nombre de jours (ou d'années) avant disparition du Cookie. path=Chemin; path représente le chemin de la page qui a créé le cookie.
  • 64. domain=NomDeDomaine; domain représente le nom du domaine de cette même page secure secure prend les valeurs "true" ou "false" selon que le cookie doit utiliser des protocoles HTTP simples (non sécurisés) ou HTTPS (sécurisés). Les arguments path, domain et secure sont facultatifs. lorsque ces arguments sont omis, les valeurs par défaut sont prises. Pour secure, la valeur est "False" par défaut.
  • 65. Ecrire un cookie Un cookie est une propriété de l'objet document (la page HTML chargée dans le navigateur) alors l’intruction d’écriture de cookie est: document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString() ;
  • 66.  var Nom = "MonCookie" ; // nom du cookie  var Contenu = "Hé... Vous avez un cookie sur votre disque !" ; // contenu du cookie  var expdate = new Date () ; // crée un objet date indispensable  puis rajoutons lui 10 jours d'existence :  expdate.setTime (expdate.getTime() + ( 10 * 24 * 60 * 60 * 1000)) ;  document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString() ;
  • 67.  Lecture d'un cookie  Accéder à la propriété cookie de l'objet document.  Document.cookie  Exemple var LesCookies ; // pour voir les cookies LesCookies = document.cookie ; // on met les cookies dans la variable LesCookies
  • 68.  Modification d'un cookie Modifier le contenu de la variable Contenu puis réécrire le cookie sur le disque dur du client  Contenu = "Le cookie a été modifié..." ; // nouveau contenu  document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString() ; // écriture sur le disque
  • 69. Positionner la date de péremption du cookie à une valeur inférieure à celle du moment où on l'écrit sur le disque. Exemple // on enlève une seconde (ça suffit mais c'est nécessaire) expdate.setTime (expdate.getTime() - (1000)) ; // écriture sur le disque document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString() ;
  • 70.
  • 71. Création de menus – On cherche à créer des menus hiérarchiques, comme cidessous – En passant sur un menu, il passe au gris clair • En cliquant sur Menu 2, des sous-menus apparaissent. Il sont cliquables
  • 72.
  • 73.
  • 74.  Pour lier les menus et les sous-menus : on utilise les listes de définition <DL> – Les listes de définitions comportent deux parties, un terme et une description – Pour marquer une liste de définitions, il vous faut trois éléments HTML : un <dl> conteneur, un terme de définition <dt>, et une description de définition <dd>
  • 75. Par exemple : <dl> <dt>Grenouille</dt> <dd>Truc vert humide</dd> <dt>Lapin</dt> <dd>Truc chaud et doux</dd> </dl> <dl id="menu"> <dt onclick="javascript:montre();"><a href="#">Menu1</a></dt> <dt onclick="javascript:montre('smenu2');">Menu2</dt> <dd id="smenu2"> <ul> <li><a href="#">Sous-Menu 2.1</a></li> <li><a href="#">Sous-Menu 2.2</a></li> <li><a href="#">Sous-Menu 2.3</a></li> </ul> </dd>
  • 76. <dt onclick="javascript:montre('smenu3');">Menu 3</dt> <dd id="smenu3"> <ul> <li><a href="#">Sous-Menu 3.1</a></li> <li><a href="#">Sous-Menu 3.1</a></li> <li><a href="#">Sous-Menu 3.1</a></li> <li><a href="#">Sous-Menu 3.1</a></li> <li><a href="#">Sous-Menu 3.1</a></li> <li><a href="#">Sous-Menu 3.1</a></li> </ul> </dd>
  • 77. <dt onclick="javascript:montre('smenu4');">Menu 4</dt> <dd id="smenu4"> <ul> <li><a href="#">Sous-Menu 4.1</a></li> <li><a href="#">Sous-Menu 4.1</a></li> </ul> </dd> </dl> </body>
  • 78. <script type="text/javascript"> <!-- window.onload=montre; //montre le menu principal au chargement function montre(id) { var d = document.getElementById(id); //On cache les sous-menus for (var i = 1; i<=10; i++) { if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i). style.display='none';} } //On affiche le sous-menu if (d) {d.style.display='block';} } //--> </script>