• Aucun résultat trouvé

Langage JavaScript : introduction complet aux objets

N/A
N/A
Protected

Academic year: 2021

Partager "Langage JavaScript : introduction complet aux objets"

Copied!
79
0
0

Texte intégral

(1)
(2)
(3)

GÉNÉRALITÉS

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

(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>

(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.lastModified"> </form>

(7)

ONDBLCLICK (EN DOUBLE-CLIQUANT)

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=document.calcu ler.valeur.value*document.calculer.valeur.value">

</form>

(8)

ONERROR (EN CAS D'ERREUR)

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)

ONMOUSEMOVE (EN BOUGEANT LA SOURIS)

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)

ONMOUSEOUT (EN QUITTANT L'ÉLÉMENT AVEC LA SOURIS)

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>

(11)

ONMOUSEOVER (EN PASSANT SUR L'ÉLÉMENT AVEC LA SOURIS) 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>

(12)
(13)

GÉNÉRALITÉS

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

(14)

GÉNÉRALISATION

É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

(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

(16)

TABLEAU À UNE DIMENSION

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);

(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();

(21)

MÉTHODES

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)

EXEMPLES

var tab = new Array(); vide

tab.push('pomme','ananas','poire','cerise') 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','cerise') 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)

TABLEAU À DEUX DIMENSIONS

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

(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.

(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

(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

(30)

30 window navigator document history Plugins[] Mimetypes[] Forms[] Images[] links[] (==hidden) element[] (==textArea) (==button) (==checkbox) (==password) (==radio) (==reset) (==selection) (==submit) (==text)

(31)

31

document

window

(32)

OBJET NAVIGATOR

 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,…)

(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)

LE CONTRÔLE LIGNE DE TEXTE

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)

L'OBJET TEXT POSSÈDE TROIS PROPRIÉTÉS :

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

(38)

LIRE UNE VALEUR DANS UNE ZONE DE TEXTE

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

(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)

ECRIRE UNE VALEUR DANS UNE ZONE DE TEXTE

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

(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>

(42)

LES BOUTONS RADIO

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 (CHECKBOX)

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

(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>

(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 :

(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

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">

(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 SUBMIT

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)

C'EST QUOI ?

 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

(59)

Quoi faire avec un cookie?

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)

LIMITATIONS LORS DE L’UTILISATION DES COOKIES.

 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

(61)

Où sont stockés les cookies

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:\WINDOWS\Cookies" ou encore "C:\WINDOWS\TEMP\Cookies".

(62)

STRUCTURE D'UN COOKIE

 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;

(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.

(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)

EXEMPLE

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 + ";

(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

(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)

SUPPRESSION D'UN COOKIE

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

(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>,

(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>

(76)

<dt

onclick="javascript:montre('smenu3');">Men u3</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>

(77)

<dt

onclick="javascript:montre('smenu4');">Men u4</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>

(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';} }

//-->

(79)

Figure

TABLEAU À UNE DIMENSION
TABLEAU À DEUX DIMENSIONS

Références

Documents relatifs

On laisse dans la même classe tous les états qui donnent un état d’arrivée dans la même classe. 4- Recommencer en 3 jusqu’à ce qu’il n’y ait plus de classe

Est l’uns les plus nuisibles les papillons apparaissent au printemps (avril) 3.5-4mm d’envergure, jaune grisâtre, la femelle pond de 500 à 2000 œufs, l’incubation dure

Ils expliquaient le comportement fermé qu’il avait depuis qu’il était arrivé, mais pas pourquoi il avait été aussi fermé ces dernières semaines.. Mais ce n’était pas

FABRICATION DU TISSU Tissu de surface : ratine laminée par extrusion, 60 % polyester, 40 % coton Barrière : 100 % vinyle enduit de PVC.. POIDS DU TISSU AVANT

Mise à jour janvier 2011 Ajouter imperméable et enlever avec endos, remplacer flanelle par surface tissé et endos par barrière, ajouter à la Rubrique rétrécissement « le

Avant de faire ton choix, inscris dans chaque case entre deux et trois adjectifs qui pour toi symbolisent le livre que tu as lu.. L’heure

Avant de faire ton choix, inscris dans chaque case entre deux et trois adjectifs qui pour toi symbolisent le livre que tu as lu.. L’heure

Et s’ils n’approuvèrent point en leur for intérieur la mesure du méridien de Dunkerque à Barcelone, s’ils se réjouirent des ennuis de Delambre et des