Chap3 Javascript
Chap3 Javascript
Serveur
Web
Base de données
Chapitre 3 Chapitre 1
Interactivité Navigateur
(programmation JavaScript Introduction
côté client)
2
Programmation Avancée (PRAVAN)
Plan de cette séance
1. Rappel
1. Notions de base du Web
2. Les Bases de la programmation côté client
3. Les Bases du Langage JavaScript
4. Manipulation du DOM
5. Le BOM (Browser Object Model)
6. Les Evénements
3
Programmation Avancée (PRAVAN)
1
Rappel
4
Programmation Avancée (PRAVAN)
1- Rappel
Site Web Statique (Seulement avec HTML+CSS)
Serveur
Web Suffisants pour
la présentation
Requête Réponse
HTTP HTML CSS
De quelle interactivité
parle-ton ?
5
Programmation Avancée (PRAVAN)
1- Rappel
Site Web Statique (Seulement avec HTML+CSS)+Interactif
Serveur
Exemples d’interaction:
Suite à un événement provoqué par Web
l’utilisateur (ex. clique sur un bouton): Interactivité
Site Statique +
- Une élément HTML (Côté Client)
s’affiche/se modifie/se masque. Requête Réponse
- ou Une propriété CSS change.
HTTP HTML CSS
- ou Un résultat d’un calcul est affiché.
- ou Suivant la véracité d’une condition le
contenu de la page Web change.
- ou Vérification du contenu d’un champs
de saisie.
- etc. Action
Navigateur
(Côté Client)
Réaction
6
Programmation Avancée (PRAVAN)
1- Rappel
Site Web Statique (Seulement avec HTML+CSS)+Interactif
Serveur
Exemples d’interaction:
Suite à un événement provoqué par Web
l’utilisateur (ex. clique sur un bouton): Interactivité
Site Statique +
- Une élément HTML (Côté Client)
s’affiche/se modifie/se masque. Requête Réponse
- ou Une propriété CSS change.
HTTP HTML CSS
- ou Un résultat d’un calcul est affiché.
- ou Suivant la véracité d’une condition le
contenu de la page Web change.
- ou Vérification du contenu d’un champs
de saisie.
- etc. Action
Navigateur
Les comportements que l’on
souhaite prévoir sur notre (Côté Client)
page Web doivent être
programmés Réaction
7
Programmation Avancée (PRAVAN)
1- Rappel
Site Web Statique (Seulement avec HTML+CSS+JS)+Interactif
Serveur
Exemples d’interaction:
Suite à un événement provoqué par Web
l’utilisateur (ex. clique sur un bouton): Interactivité
Site Statique +
- Une élément HTML (Côté Client)
s’affiche/se modifie/se masque. Requête Réponse
- ou Une propriété CSS change.
HTTP HTML CSS JavaScript
- ou Un résultat d’un calcul est affiché.
- ou Suivant la véracité d’une condition le
contenu de la page Web change.
- ou Vérification du contenu d’un champs
de saisie.
- etc. Action Cette programmation se
fait dans des scripts en
Navigateur langage JavaScript
Les comportements que l’on
souhaite prévoir sur notre (Côté Client)
page Web doivent être
programmés Réaction
8
Programmation Avancée (PRAVAN)
1- Rappel
Site Web Statique (Seulement avec HTML+CSS+JS)+Interactif
Serveur
Exemples d’interaction:
Suite à un événement provoqué par Web
l’utilisateur (ex. clique sur un bouton): Interactivité
Site Statique +
- Une élément HTML (Côté Client)
s’affiche/se modifie/se masque. Requête Réponse
- ou Une propriété CSS change.
HTTP HTML CSS JavaScript
- ou Un résultat d’un calcul est affiché.
- ou Suivant la véracité d’une condition le
contenu de la page Web change.
- ou Vérification du contenu d’un champs
de saisie.
- etc. Action Cette programmation se
fait dans des scripts en
Navigateur langage JavaScript
Les comportements que l’on
souhaite prévoir sur notre (Côté Client) Ces scripts sont exécutés par le
page Web doivent être
Réaction navigateur au besoin (ex. un
programmés événement click se produit)
9
Programmation Avancée (PRAVAN)
2
Les Bases
de la programmation
côté client
10
Programmation Avancée (PRAVAN)
2- Les Bases de la programmation côté client
HTML
2
un élément H1 "Compteur=0"
3
1 et un élément Button (bouton)
Prenons l'exemple suivant. "Incrémenter"
Nous avons donc un code
HTML qui contient:
11
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le
comportement suivant bouton "Incrémenter", le compteur
2- Les Bases de la programmation côté client s’incrémente de 1, et si on dépasse 5,
il devient rouge.
HTML
….
12
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le
comportement suivant bouton "Incrémenter", le compteur
2- Les Bases de la programmation côté client s’incrémente de 1, et si on dépasse 5,
il devient rouge.
HTML
Script JS
….
Ce comportement doit
être programmé dans un
script JS (JavaScript).
13
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le
comportement suivant bouton "Incrémenter", le compteur
2- Les Bases de la programmation côté client s’incrémente de 1, et si on dépasse 5,
il devient rouge.
HTML
Script JS
….
Ce comportement doit
être programmé dans un
script JS (JavaScript).
14
Programmation Avancée (PRAVAN) lorsque l’utilisateur clique sur le
bouton "Incrémenter", le compteur
2- Les Bases de la programmation côté client s’incrémente de 1, et si on dépasse 5,
il devient rouge.
HTML
Décortiquons un peu ce
comportement
Script JS
….
15
Programmation Avancée (PRAVAN) Décortiquons un peu ce lorsque l’utilisateur clique sur le
comportement bouton "Incrémenter", le compteur
2- Les Bases de la programmation côté client s’incrémente de 1, et si on dépasse 5,
il devient rouge.
Evénement
HTML lorsque l’utilisateur clique sur le
bouton "Incrémenter",
Script JS
….
16
Programmation Avancée (PRAVAN) Décortiquons un peu ce lorsque l’utilisateur clique sur le
comportement bouton "Incrémenter", le compteur
2- Les Bases de la programmation côté client s’incrémente de 1, et si on dépasse 5,
il devient rouge.
Evénement
HTML lorsque l’utilisateur clique sur le
bouton "Incrémenter",
Traitement
le compteur s’incrémente de 1
Changement visuel
Script JS
….
Nous précisons quoi faire quand cet
événement se réalise (au clic):
Ici, c’est le traitement doIncrement
qui est exécuté (qui est une
fonction).
Traitement
le compteur s’incrémente de 1
Changement visuel
Script JS
….
Traitement
et si on dépasse 5, il devient rouge.
Changement visuel
Changement visuel
On sélectionne un élément HTML (presque
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Plusieurs types de traitements sont contenu de l’élément.
possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation.
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
19
Programmation Avancée (PRAVAN)
2- Les Bases de la programmation côté client
Résumons
Visuel
Evénement
HTML
Quelque chose se passe:
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
onload (au chargement de
la page), etc.
Changement visuel
On sélectionne un élément HTML (presque
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Plusieurs types de traitements sont contenu de l’élément.
possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation
affectations, comparaisons, tableaux, etc.
Méthode 1: Enligne
21
Programmation Avancée (PRAVAN)
2- Les Bases de la programmation côté client Où mettre les Scripts ?
Méthode 1: Enligne
22
Programmation Avancée (PRAVAN)
2- Les Bases de la programmation côté client Où mettre les Scripts ?
23
Programmation Avancée (PRAVAN)
2- Les Bases de la programmation côté client
Visuel
Evénement
HTML
Quelque chose se passe:
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
onload (au chargement de
la page), etc.
Changement visuel
Nous allons
On sélectionne un élément HTML (presque
décortiquer
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Plusieurs types de traitements sont contenu de l’élément.
possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation.
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
24
Programmation Avancée (PRAVAN)
2- Les Bases de la programmation côté client
du langage
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
Changement visuel
Nous allons
On sélectionne un élément HTML (presque
décortiquer
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Plusieurs types de traitements sont contenu de l’élément.
possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
25
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
C’est quoi ?
JavaScript est principalement un langage
de programmation côté client.
Historique
• JavaScript (anciennement ECMAScript) a été crée par Netscape (le fameux navigateur Web),en 1990.
• But: Permettre aux développeurs Web d’incorporer un code exécutable dans leurs pages Web.
• Effet: Une page Web pouvait donc contenir un script en JavaScript, qui est exécuté quand l’utilisateur
visite la page (interactivité ou traitement).
26
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Familiarités avec les langages de programmation Comme avec tout langage de programmation, en
JavaScript, il y a aussi la console qu’on peut utiliser pour
Contrairement au langage C ou Java, en JavaScript il n’y a pas de notion de afficher (on écrit: console.log("text à afficher")).
fonction principale (la fameuse fonction main()).
Le console est accessible dans n’importe quel
A la place, le navigateur interprète et exécute le code de haut vers le bas, navigateur. Par exemple, ici, on a ouvert la page
et compris les fichiers JS externes. maPage.html, puis les outils de développement, puis
l’onglet Console.
28
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS
1. Syntaxe
2. Variables et Constantes
3. Les opérateurs
4. Les conditions
5. Les boucles
6. Les fonctions
29
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 1. Syntaxe
30
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 2. Variables et Constantes Les Types primitifs
> Console
31
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 2. Variables et Constantes Les Types Complexes
Les Tableaux
> Console
32
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 2. Variables et Constantes Les Types Complexes
Les Objets
33
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 2. Variables et Constantes Les Types Complexes
Tableau d’Objets
34
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 3. Les Opérateurs
35
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 4. Les Conditions
36
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 5. Les Boucles
37
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 6. Les Fonctions
38
Programmation Avancée (PRAVAN)
3- Les Bases du Langage JavaScript
Noyau du langage JS 7. Portée d’une variable Globale vs Locale
39
Programmation Avancée (PRAVAN)
du langage
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
Changement visuel
Nous allons
On sélectionne un élément HTML (presque
décortiquer
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Plusieurs types de traitements sont contenu de l’élément.
possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
40
Programmation Avancée (PRAVAN)
Visuel
Evénement
HTML
Quelque chose se passe:
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
onload (au chargement de
la page), etc.
Changement visuel
Nous allons
On sélectionne un élément HTML (presque
décortiquer
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Plusieurs types de traitements sont contenu de l’élément.
possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation.
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
41
Programmation Avancée (PRAVAN)
Visuel
Evénement
HTML
Quelque chose se passe:
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
onload (au chargement de
Changement visuel
Il est important de comprendre Nous allons
On sélectionne un élément HTML (presque
décortiquer
le DOM, pour savoir comment
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
sélectionner un élément HTML
Plusieurs types de traitements sont contenu de l’élément.
et comment le modifier. possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation.
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
42
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Rappel: Structure d’un document HTML La racine
HTML
Document HTML
head body
<html>
<head>
</head> …. p p
<body>
<p>
…. ….
Bienvenue sur <strong>Bingo</strong>, le site
de <em>formation</em>. Un modèle en ARBRE
</p>
<p> Aujourd’hui nous allons parler de HTML. </p>
</body>
Le DOM: Document Object Model
</html>
43
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le DOM (Document Object Model)
44
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le DOM (Document Object Model)
HTML
Dans cet exemple, nous
avons d’abord retrouvé
l’élément h1, avec son
identifiant "compt_H1", et
nous avons changer son
contenu.
Script JS
….
Il existe plusieurs
Ici, nous avons changé son manières pour retrouver
style CSS un élément HTML.
46
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML
Par identifiant
Par class
Il existe plusieurs
manières pour retrouver
un élément HTML.
47
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML
Par identifiant
Par class
48
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par identifiant
document
HTML
h1 h2 h2 h2 p p
1
Je veux le
modifier
getElementById(<id>)
Retourne un seul élément qui possède l’identifiant id indiqué
49
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par identifiant
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec son id
getElementById(<id>)
Retourne un seul élément qui possède l’identifiant id indiqué
3
On commence toujours par "document", car c’est lui la racine 50
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par identifiant
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec son id
getElementById(<id>)
Retourne un seul élément qui possède l’identifiant id indiqué
4
L’élément récupéré est un objet qui
possède des propriété et des
méthodes. "innerHTML" est une
propriété qui renferme le contenu de
l’élément. Donc la modifier, permettra
3 d’avoir une différence au visuel dans la
On commence toujours par "document", car c’est lui la racine page Web. 51
Programmation Avancée (PRAVAN)
L’élément touché par la modification
4- Manipulation du DOM Après clique sur bouton "Exécuter
Script", qui déclenche la fonction
doTraitement()
Retrouver un élément HTML Par identifiant 5
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec son id
getElementById(<id>)
Retourne un seul élément qui possède l’identifiant id indiqué
4
L’élément récupéré est un objet qui
possède des propriété et des
méthodes. "innerHTML" est une
propriété qui renferme le contenu de
l’élément. Donc la modifier, permettra
3 d’avoir une différence au visuel dans la
On commence toujours par "document", car c’est lui la racine page Web. 52
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML
Par identifiant
Par class
53
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par le nom de balise
document
HTML
h1 h2 h2 h2 p p
1
Je veux le
modifier
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
54
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par le nom de balise
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec le nom balise
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
55
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par le nom de balise
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec le nom balise
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
3
Même s’il y a un seul h1 dans notre page
HTML, la méthode getElementsByTagName
retourne toujours une collection.
Dans notre cas, la collection contiendra un seul
élément h1, et pour le retrouver, on lit le
premier item de cet collection, avec [0] (car
une collection commence de l’index 0) 56
Programmation Avancée (PRAVAN)
L’élément touché par la modification
4- Manipulation du DOM Après clique sur bouton "Exécuter
Script", qui déclenche la fonction
doTraitement()
Retrouver un élément HTML Par le nom de balise 4
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec le nom balise
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
3
Même s’il y a un seul h1 dans notre page
HTML, la méthode getElementsByTagName
retourne toujours une collection.
Dans notre cas, la collection contiendra un seul
élément h1, et pour le retrouver, on lit le
premier item de cet collection, avec [0] (car
une collection commence de l’index 0) 57
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML
Par identifiant
Par class
58
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par class
document
HTML
h1 h2 h2 h2 p p
1
Je veux le
modifier
getElementsByClassName(<class>)
Retourne toujours une collection d’éléments d’une classe données
59
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par class
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec le nom classe
getElementsByClassName(<class>)
Retourne toujours une collection d’éléments d’une classe données
60
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par class
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec le nom classe
getElementsByClassName(<class>)
Retourne toujours une collection d’éléments d’une classe données
3
Dans notre cas, la collection contiendra un seul
élément p, et pour le retrouver, on lit le
premier item de cet collection, avec [0] (car
une collection commence de l’index 0)
61
Programmation Avancée (PRAVAN)
L’élément touché par la modification
4- Manipulation du DOM Après clique sur bouton "Exécuter
Script", qui déclenche la fonction
doTraitement()
Retrouver un élément HTML Par class 4
document
HTML
h1 h2 h2 h2 p p
1 2
Je veux le Je peux le retrouver
modifier avec le nom classe
getElementsByClassName(<class>)
Retourne toujours une collection d’éléments d’une classe données
3
Dans notre cas, la collection contiendra un seul
élément p, et pour le retrouver, on lit le
premier item de cet collection, avec [0] (car
une collection commence de l’index 0)
62
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML
Par identifiant
Par class
63
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par sélecteur CSS
1
Je veux le
modifier
querySelectorAll(<sélecteur>)
Retourne toujours une collection d’éléments d’un sélecteur donné
64
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML Par sélecteur CSS
1 2
Je veux le Je peux le retrouver
modifier avec un Sélecteur CSS
querySelectorAll(<sélecteur>)
Retourne toujours une collection d’éléments d’un sélecteur donné
65
Programmation Avancée (PRAVAN)
L’élément touché par la modification
4- Manipulation du DOM Après clique sur bouton "Exécuter
Script", qui déclenche la fonction
doTraitement()
Retrouver un élément HTML Par sélecteur CSS
3
1 2
Je veux le Je peux le retrouver
modifier avec un Sélecteur CSS
querySelectorAll(<sélecteur>)
Retourne toujours une collection d’éléments d’un sélecteur donné
66
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver plusieurs éléments HTML
Par identifiant
Jusqu’à présent, on n’a vu que
Par le nom de balise l’exemple avec un seul élément
récupéré…
Par class ….Mais, imaginons que ma sélection
retourne plusieurs éléments
Par sélecteur CSS
67
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver plusieurs éléments HTML
1
Je veux les
modifier
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
68
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver plusieurs éléments HTML
1 2
Je veux les Je peux les retrouver
modifier avec le nom Balise h2
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
69
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver plusieurs éléments HTML
1 2
Je veux les Je peux les retrouver
modifier avec le nom Balise h2
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
3
Comme getElementsByTagName retourne
toujours une collection, et ma collection
contient les 3 élément h2 présent dans mon
document HTML, je dois faire une boucle pour
parcourir la sélection, et faire mon traitement.
70
Programmation Avancée (PRAVAN)
L’élément touché par la modification
4- Manipulation du DOM Après clique sur bouton "Exécuter
Script", qui déclenche la fonction
doTraitement()
Retrouver plusieurs éléments HTML 4
1 2
Je veux les Je peux les retrouver
modifier avec le nom Balise h2
getElementsByTagName(<tag>)
Retourne toujours une collection d’éléments d’une balise données
3
Comme getElementsByTagName retourne
toujours une collection, et ma collection
contient les 3 élément h2 présent dans mon
document HTML, je dois faire une boucle pour
parcourir la sélection, et faire mon traitement.
71
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Retrouver un élément HTML
Par identifiant
Par class
72
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
73
Programmation Avancée (PRAVAN) D’abord, il faut savoir qu’en JavaScript, un élément HTML
est un objet qui possède des propriétés et des méthodes
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
lastChild appendChild()
nextSibling replaceChild()
74
Programmation Avancée (PRAVAN) D’abord, il faut savoir qu’en JavaScript, un élément HTML
est un objet qui possède des propriétés et des méthodes
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
75
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
76
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Propriétés
parentNode
childNodes
Ces propriétés permettent la
firstChild navigation dans l’arbre, par rapport
à l’élément récupéré
lastChild
nextSibling
Exemple:
Si l’élément récupéré c’est body.
La propriété childNodes de cet élément
donnera la collection d’élément h1, p, p
77
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
78
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
innerHTML est
Propriétés reconnue comme
du code HTML
innerHTML
innerText
Permettent la
modification du
contenu de l’élément. innerText est
reconnue comme
du texte simple
79
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
80
Programmation Avancée (PRAVAN) HTML
4- Manipulation du DOM
Un élément HTML
Propriétés
attributs
Console
81
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
82
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Propriétés
style
84
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
85
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Méthodes
append()
86
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
87
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Méthodes
remove()
removeChild()
replaceChild()
appendChild()
L’élément Titre 1
Permet de supprimer a été supprimé.
l’élément
88
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Méthodes
remove()
removeChild()
replaceChild()
Au premier clic, Titre2
est supprimé.
appendChild()
Permet de supprimer
un élément enfant Au deuxième clic, Titre3
est supprimé.
Un élément HTML
Méthodes
remove()
removeChild()
replaceChild()
Permet de remplacer
un élément enfant Au deuxième clic, Titre 3 est remplacé
par Titre 1 encore
Un élément HTML
Méthodes
remove()
removeChild()
replaceChild()
Permet de rajouter un
élément enfant à la fin
91
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Méthodes
Je peux créer un élément HTML à partir de 0, et l’insérer dans le DOM
remove()
removeChild()
replaceChild()
appendChild()
Permet de rajouter un
élément enfant
92
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Méthodes
Je peux créer un élément HTML à partir de 0, et l’insérer dans le DOM
remove()
replaceChild()
appendChild()
Permet de rajouter un
élément enfant
93
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
94
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Un élément HTML
Méthodes
hasAttribute()
getAttribute()
setAttribute()
Permettent de d’accéder
aux attributs de l’élément
Remarquez la différence
entre:
getAttribute("src")
et element.src
getAttribute retourne la valeur exacte de l’attribut !
95
Programmation Avancée (PRAVAN)
4- Manipulation du DOM
Le tout se fait généralement en 2 étapes :
Un élément HTML
1- Retrouver l’élément HTML
2- Faire une opération
Propriétés Méthodes
96
Programmation Avancée (PRAVAN)
DOM vs BOM
97
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
DOM
Rappelez-vous HTML
head body
…. p p
…. ….
98
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
Maintenant, il faut savoir
que l’objet document est
lui-même un enfant de
l’objet window window
DOM
document
HTML
head body
…. p p
…. ….
99
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
Maintenant, il faut savoir
que l’objet document est
lui-même un enfant de
l’objet window window
DOM
document
HTML
head body
…. p p
…. ….
100
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
DOM
HTML
head body
…. p p
…. ….
101
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
BOM: Browser Object
Model
window
DOM
HTML
head body
…. p p
…. ….
102
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
Quelques propriétés et méthodes intéressantes
Voir d’autres ici:
https://www.w3schools.com/jsref/obj_window.asp window
DOM
Méthodes
document
alert() screen location history navigator
Affiche une boite d’alerte.
HTML
Prompt()
scrollBy();
…. ….
Scroll par un pas spécifié
103
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
Quelques propriétés et méthodes intéressantes
Voir d’autres ici:
https://www.w3schools.com/jsref/obj_window.asp window
DOM
head body
…. p p
…. ….
104
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
Quelques propriétés et méthodes intéressantes
Voir d’autres ici:
https://www.w3schools.com/jsref/obj_window.asp window
DOM
Méthodes
document screen location history navigator
back()
go()
HTML
forward()
head body
…. p p
…. ….
105
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
Quelques propriétés et méthodes intéressantes
Voir d’autres ici:
https://www.w3schools.com/jsref/obj_window.asp window
DOM
Propriétés
document screen location history navigator
platform
HTML
head body
…. p p
…. ….
106
Programmation Avancée (PRAVAN)
5- Le BOM (Browser Object Model)
Quelques propriétés et méthodes intéressantes BOM: Browser Object
Model
window
DOM
HTML
Voir d’autres ici:
https://www.w3schools.com/jsref/obj_window.asp
head body
…. p p
…. ….
107
Programmation Avancée (PRAVAN)
Visuel
Evénement
HTML
Quelque chose se passe:
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
onload (au chargement de
Changement visuel
Il est important de comprendre Nous allons
On sélectionne un élément HTML (presque
décortiquer
le DOM, pour savoir comment
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
sélectionner un élément HTML
Plusieurs types de traitements sont contenu de l’élément.
et comment le modifier. possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation.
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
108
Programmation Avancée (PRAVAN)
Visuel
Evénement
HTML
Quelque chose se passe:
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
onload (au chargement de
la page), etc.
Changement visuel
Nous allons
On sélectionne un élément HTML (presque
décortiquer
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Plusieurs types de traitements sont contenu de l’élément.
possibles, comme ce qui peut se faire dans Ou, on modifie le style, pour, par exemple,
un langage de programmation: déclaration changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation.
affectations, comparaisons, tableaux, etc.
En langage JavaScript.
109
Programmation Avancée (PRAVAN)
Visuel
Evénement
HTML
Quelque chose se passe:
Plusieurs événements sont
possibles, par exemple:
onclick (au clic),
onmouseover (au survol),
onload (au chargement de
la page), etc.
Changement visuel
Nous allons
On sélectionne un élément HTML (presque
décortiquer
Traitement comme le fait le CSS), puis on modifie le
Script JS code HTML pour, par exemple, changer le
Les Evénements
Plusieurs types de traitements sont
possibles, comme ce qui peut se faire dans
un langage de programmation: déclaration
contenu de l’élément.
Ou, on modifie le style, pour, par exemple,
changer la couleur d’un élément.
de variables, opérations arithmétiques, Tout est modifiable par programmation.
Il est
important de connaitre
affectations, les événements
comparaisons, tableaux, etc.
En langage JavaScript.
possibles, pour maitriser l’interaction avec
l’utilisateur
110
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
111
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
C’est un Evénement
112
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
C’est un Evénement
113
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
Mais je le déclare où ??
C’est un Evénement
114
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
C’est un Evénement
115
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
116
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
le "lorsque l’utilisateur clique" sur sur le bouton "Incrémenter" Je fait un traitement Une fonction qu’on appellera par
exemple "do Traitement", et
C’est un Evénement qu’on définira
En JavaScript, cet événement compteur s’incrémente
s’appel "onclick" de 1, et si on dépasse 5,
il devient rouge.
117
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
Rappelez-vous
HTML
Script JS
118
Programmation Avancée (PRAVAN) On voudrait prévoir le lorsque l’utilisateur clique sur le bouton
comportement suivant "Incrémenter", (un traitement)
6- Les Evénements (traitement) c’est : le compteur s’incrémente
de 1, et si on dépasse 5, il devient rouge.
HTML
Au clic
Script JS
Au clic
….
119
Programmation Avancée (PRAVAN)
6- Les Evénements
HTML
Au survol
Passage de la
souris, sans clique
Au survol
….
le "lorsque l’utilisateur clique"
clique
Evénement survol
onmouseover Mais il existe d’autres
événements possibles
120
Programmation Avancée (PRAVAN)
6- Les Evénements
HTML
Au survol
Passage de la
souris, sans clique
Au survol
….
le "lorsque l’utilisateur clique"
clique
Evénement survol
onmouseover
Liste des événéments possibles
https://www.w3schools.com/jsref/dom_obj_event.asp
https://developer.mozilla.org/fr/docs/Web/Events
121
Programmation Avancée (PRAVAN)
6- Les Evénements
HTML
Au survol de
Ici: j’ai mis mon traitement directement dans le HTML
Titre1
(juste montrer la possibilité).
J’ai aussi utilisé 2 événement:
• onmousover (au passage de la souris)
• onmousleave (quand l’élément n’est plus survolé)
122
Programmation Avancée (PRAVAN)
Liens utiles
W3Schools
https://www.w3schools.com/
123
Programmation Avancée (PRAVAN)
La suite ?
En TP 3- Manipulation du DOM
4- Utilisation du BOM
5- Les événements
Serveur
Web
Base de données
Chapitre 3 Chapitre 1
Interactivité Navigateur
(programmation JavaScript Introduction
côté client)
125
Programmation Avancée (PRAVAN)
Merci
126