Chapitre JavaScript
Chapitre JavaScript
1 / 122
Sommaire
1 Introduction
2 Le noyau JavaScript
Les variables
Les opérations et les fonctions prédéfinies
L’orienté Objets
JSON
3 Le JavaScript côté client Web
DOM
Les évènements
Les cookies
4 Annexes
Annexe String
Annexe Date
Annexe Objet window
Annexe Evènement
5 Bibliographie
2 / 122
On entend parler du JavaScript ...
3 / 122
JavaScript... C’est quoi ?
JavaScript
un peu d’histoire ...
est un langage de script simplifié orienté objet dont la syntaxe est
basée sur celle du Java.
Javascript a été initialement élaboré par Netscape en association avec
Sun Microsystem.
Plus tard, Microsoft développera son propre langage Javascript
officiellement connu sous le nom de JScript.
4 / 122
JavaScript... Quelques généralités
Questions
1. Quelle est la différence entre JavaScript et l’applet ?
5 / 122
JavaScript... Quelques généralités
Questions
1. Quelle est la différence entre JavaScript et l’applet ?
2. Maintenant, quelle est la différence entre Java et JavaScript ?
6 / 122
JavaScript... Quelques généralités
Questions
1. Quelle est la différence entre JavaScript et l’applet ?
2. Maintenant, quelle est la différence entre Java et JavaScript ?
7 / 122
JavaScript... Intérêt ?
Quel intérêt pour JavaScript
8 / 122
JavaScript... Intérêt ?
Quel intérêt pour JavaScript
Supporté (par défaut) par les principaux navigateurs, ne nécessite pas
de plug-in particulier.
Accès aux objets contenus dans un document HTML ) + possibilité
de les manipuler relativement facilement)
Animation : Aficher/masquer du texte, défiler des images, créer des
info bulles
Possibilité de mettre en place des animations sans l’inconvénient des
longs temps de chargement nécessités par les données multimédia.
Langage relativement sécurisé : il est impossible de lire ou d’écrire sur
le disque client (impossibilité de récupérer un virus par ce biais).
9 / 122
JavaScript... Généralité
JS .. Une technologie cliente
10 / 122
Navigateur ... et JavaScript
11 / 122
JavaScript... Difficultés ?
12 / 122
JavaScript... Difficultés ?
13 / 122
Frameworks JavaScript
Frameworks divers...
14 / 122
Les alternatives à JavaScript
15 / 122
Le noyau de JavaScript ...
16 / 122
HTML et JavaScript
17 / 122
HTML et JavaScript
1re méthode : Insertion directe
Le code s’exécute automatiquement lors du chargement de la page
HTML dans le navigateur en même temps que le contenu de la page
HTML s’affiche à l’écran.
Le code JavaScript est placé dans le corps même de la page HTML,
entre les balises <body> .......... Et ......... </body>
18 / 122
HTML et JavaScript
2me méthode : Insertion par appel à un module exterme
On peut insérer du code JavaScript en faisant appel à un module
externe se trouvant à n’importe quelle adresse (URI).
20 / 122
Entrée et sortie de données avec JavaScript
21 / 122
Exercice ...
22 / 122
La structure d’un script en JavaScript
23 / 122
Les variables ...
24 / 122
Déclaration et typage en JavaScript
Déclaration et affectation
Le mot-clé var permet de déclarer une ou plusieurs variables.
Après la déclaration de la variable, il est possible de lui affecter une
valeur par l’intermédiaire du signe d’égalité (=).
Si une valeur est affectée à une variable sans que cette dernière ne soit
déclarée, alors Javascript la déclare automatiquement.
25 / 122
Déclaration et typage en JavaScript
La portée
Les variables peuvent être globales ou locales.
Une variable globale est déclarée en début de script et est accessible à
n’importe quel endroit du programme.
Une variable locale est déclarée à l’intérieur d’une fonction et n’est
utilisable que dans la fonction elle-même.
26 / 122
Déclaration et typage en JavaScript
27 / 122
Les variables en JavaScript
28 / 122
Portée et vies des variables
29 / 122
Portée et vies des variables
30 / 122
Valeurs spéciales des variables
31 / 122
Les opérations et les fonctions
prédéfinies ...
32 / 122
Les opérations sur les chaînes
33 / 122
Les structures de contrôle et d’itération
Structures de contrôles
Condition if (expr) {... } else {... }
34 / 122
Les structures de contrôle et d’itération
Structures de contrôle
Sélection switch(expr){ case n : .. }
35 / 122
Les structures de contrôle et d’itération
Structures de contrôles
Boucle while (expr) {... }
do {... } while (expr) ;
36 / 122
Les structures de contrôle et d’itération
37 / 122
Exercices
1 Utiliser les méthodes JavaScript prompt() et alert() pour demander à
l’utilisateur deux nombres puis afficher leur somme.
2 Ecrire un script demandant de l’utilisateur d’entrer son âge et de
contrôler la validité de l’âge entré (si l’âge est erroné afficher un
message d’erreur et redemander de saisir l’âge).
3 Ecrire le code Javascript qui détermine si un nombre entier x est
parfait.
Définition
Un nombre est parfait ssi il est égal à la somme de ses diviseurs stricts.
6 est parfait car 6 = 1 + 2 + 3.
38 / 122
Les opérations
Structures de contrôles
JavaScript permet d’assigner des (pointeurs sur) fonctions à des
variables
Fonctions anonymes dont l’appel se fait au travers des variables qui les
référencent
39 / 122
Les Fonctions par déclaration
40 / 122
Les fonctions prédéfinies
41 / 122
Les fonctions prédéfinies
isFinite Détermine si le paramètre est un nombre fini. Renvoie false si
ce n’est pas un nombre ou l’infini positif ou infini négatif
42 / 122
Les fonctions prédéfinies
43 / 122
Les fonctions prédéfinies
44 / 122
L’orienté Objet ...
45 / 122
La programmation orientée Objet
Paradigme Objet Un objet est décrit par ses propriétés et ses méthodes
I Accès aux propriétés et méthodes par un point ’.’
I Auto-référence avec this
I Visibilité des propriétés et méthodes : public/privé
46 / 122
La programmation orientée Objet
Exemple
47 / 122
Objets primitifs
48 / 122
Objets primitifs
La suite ..
49 / 122
Exemples Objets
Les objets de JavaScript, sont soit des entités pré définies du langage,
soit créés par le programmeur
Par exemple, le navigateur est un objet qui s’appelle "navigator ".
La fenêtre du navigateur se nomme "window"
La page HTML est un autre objet, que l’on appelle "document".
Un formulaire à l’intérieur d’un "document", est aussi un objet.
Un lien hypertexte dans une page HTML, est encore un autre objet. Il
s’appelle "link". etc...
Les objets javascript peuvent réagir à des "Evénements".
Tous les navigateurs ne supportent pas les mêmes objets
50 / 122
Les objets
51 / 122
Les objets
L’opérateur New est utilisé pour créer une nouvelle instance ou un nouveau
type d’objet défini par l’utilisateur ou de l’un des types
d’objets prédéfinis, Array, Boolean, Date, Function, Image,
Number, Object, ou String.
52 / 122
2 façons de créer ses objets
Création directe d’objet
53 / 122
Les objets ...
54 / 122
Les objets ... String
55 / 122
Les objets ... Array
56 / 122
Les objets ... Date
57 / 122
Les objets ... Math
58 / 122
Exercice
Exercices
59 / 122
Exercice
60 / 122
JSON ...
61 / 122
Exemple de définition JSON
62 / 122
Exemple d’utilisation JSON
63 / 122
Le JavaScript côté client Web ...
64 / 122
Sous-programmes JS ...
Le code des sous-programmes se situe au niveau de l’entête d’un
document HTML
Soit directement
65 / 122
Sous-programmes JS ...
66 / 122
Sous-programmes JS ...Exemple
67 / 122
Sous-programmes JS ...Exemple
68 / 122
Les objets du JS...
Objets de type BOMBrowser Object Model, permet la
manipulation du navigateur
Les navigateurs sont des logiciels qui offrent les mêmes fonctionnalités
de base : ouvrir / fermer des onglets, aller à un URL, mémoriser la liste
des url, etc
Objets de type DOM Document Object Model qui permet la
représentation d’un document sous la forme d’un objet
Les balises sont des noeuds et leurs imbrications forment une
arborescence
Cette structure d’arbre est ensuite facile à manipuler
Cet arbre est chargé dans le navigateur et est parcouru par le parseur
du navigateur afin de produire l’affichage graphique
Chaque modification ultérieure de cet arbre force le rafraîchissement de
l’affichage graphique.
Objets de type HTML Comme par exemple <a>, <area>,
<canvas>, <button>, <form>, <image>, <input>, <link>,
<table>, etc .
69 / 122
Les objets du navigateur ...
70 / 122
Les objets du navigateur ... BOM
71 / 122
L’objet window ...
72 / 122
L’objet window ...
Il est possible de programmer l’exécution d’une méthode à un instant
donné ou à des temes réguliers grâce à setTimeout etsetInterval
74 / 122
L’objet BOM ... Exemple
75 / 122
Du l’objet BOM ... DOM
76 / 122
DOM par un exemple HTML
77 / 122
DOM par un exemple HTML
78 / 122
DOM... Document Objet Model
79 / 122
DOM... Document Objet Model
Méthode getElementsByTagName : Cette méthode prend comme
argument le nom de balise des éléments à récupérer.
80 / 122
DOM... Document Objet Model
Propriété innerHTML : En utilisant cette propriété, il est possible de
modifier le contenu d’un élément.
Remarque
La propriété innerText (textContent pour Firefox) est similaire à
innerHTML, mais ne traite que du texte simple.
81 / 122
DOM... Document Objet Model
Création dynamiquement des éléments HTML : Ceci peut se faire
suivant ces étapes :
1 createElement : création de l’élément (noeud)
document
82 / 122
DOM... Document Objet Model
Modifier le style d’une manière dynamique :Tout élément HTML
dispose d’un attribut style en JS. Les noms des propriétés CSS doivent être
convertis en camel case. Par exemple :
Propriété CSS Propriété JS
background-image style.backgroundImage
color style.color
Font-family style.fontFamily
83 / 122
DOM... Document Objet Model
84 / 122
Evènement
Evènement
Un évènement est provoqué par une action de l’utilisateur ou du navigateur
lui-même. Les évènements ont des noms tels que click, load et mouseover.
Une fonction appelée en réponse à un évènement se nomme un écouteur
(event handler ou event listener). Souvent, leur nom commence par on
comme par exemple onclik ou onload.
85 / 122
Evènement
86 / 122
Evènement
87 / 122
HTML Event Handlers
On utilise des attributs HTML pour déclarer les écouteurs. La valeur de ces
attributs est le code JavaScript à exécuter lorsque l’évènement est produit.
88 / 122
HTML Event Handlers
onClick
Se produit lorsque l’utilisateur clique sur un élément spécifique dans
une page, comme un lien hypertexte, une image, un bouton, du texte,
etc.
Ces éléments sont capables de répondre séparément à cet événement
Il peut également être déclenché lorsque l’utilisateur clique n’importe
où sur la page s’il a été associé non pas à un élément spécifique, mais
à l’élément body tout entier
89 / 122
HTML Event Handlers
onLoad
Se produit lorsque une page web est chargée dans la fenêtre du
navigateur
Toute la page (y compris les images qu’elle contient si leur
chargement est prévu) doit avoir été chargée pour qu’il ait lieu
Cet événement peut être associé à une image seulement ; auquel cas, il
se produit une fois son chargement terminé
90 / 122
HTML Event Handlers
onMouseover
Analogue à onClick sauf qu’il suffit que l’utilisateur place le pointeur
de sa souris sur l’un des éléments précités (lien hypertexte, image,
bouton, texte, etc.) pour qu’il ait lieu
onMouseout
A l’inverse de onMouseover, cet événement se produit lorsque le
pointeur de la souris quitte la zone de sélection d’un élément.
91 / 122
HTML Event Handlers
onMouseover
Analogue à onClick sauf qu’il suffit que l’utilisateur place le pointeur
de sa souris sur l’un des éléments précités (lien hypertexte, image,
bouton, texte, etc.) pour qu’il ait lieu
onMouseout
A l’inverse de onMouseover, cet événement se produit lorsque le
pointeur de la souris quitte la zone de sélection d’un élément.
92 / 122
Manipulation des objets
94 / 122
Les évènements... Retenez
Ainsi ... Deux stratégies possibles ... Pour la gestion des évènements
La deuxième Mise en place d’écouteurs d’évènement
95 / 122
Les évènements... Retenez
Question : Ré-écrivez le code précédemment proposé avec les événements.
96 / 122
Les évènements... Retenez
Question : Ré-écrivez le code précédemment proposé avec les événements.
Figure – Solution
97 / 122
Les évènements... Exercice
Figure – Solution
98 / 122
Les évènements... Objet event
Figure – Solution
99 / 122
Les évènements... souris
Ce sont :
Click double click
mousedown mouseup
mouseover mouseout
mousemove •
clientX clientY
screenX screenY
shiftkey ctrlKey
altKey metaKey
100 / 122
Les évènements... clavier
Ce sont :
keydown keyup
keypress
shiftkey ctrlKey
altKey metaKey
keyCode
101 / 122
Les évènements... HTML
Ce sont :
load unload
abort error
select change
submit reset
reseize scroll
focus blur
102 / 122
Les cookies ...
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.
103 / 122
Les cookies ...
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.
105 / 122
Les cookies ...
Les "Cookies" ... des limites
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 :
I Limites en nombre : Un seul serveur (ou domaine) ne peut pas être
autorisé à écrire plus de 20 cookies.
I Limites en taille : un cookie ne peut excéder 4 Ko.
I Limites du poste client : Un poste client ne peut stocker plus de
300 cookies en tout.
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\TEM\Cookies".
106 / 122
Les cookies ...
107 / 122
Les cookies ...
108 / 122
Gestion des cookies ...
109 / 122
Gestion des cookies ...
110 / 122
Gestion des cookies ...
111 / 122
Annexe
112 / 122
Les objets ... String ... Annexe
Quelques méthodes
italics( ) : formate la chaîne avec la balise <I> ;
lastIndexOf( ) : permet de trouver le dernier indice d’occurrence d’un
caractère ;
link( ) : formate la chaîne avec la balise <A> pour permettre de faire
un lien ;
slice( ) : retourne une portion de la chaîne ;
substr( ) : retourne une portion de la chaîne ;
substring( ) : retourne une portion de la chaîne ;
indexOf( ) : permet de trouver l’indice d’occurrence d’un caractère
dans une chaîne ;
charCodeAt( ) : renvoie le code du caractère se trouvant à une
certaine position ;
113 / 122
Les objets ...date ... Annexe
114 / 122
Les objets ...Window ... Annexe
115 / 122
Les objets ...Window ... Annexe
116 / 122
Les objets ...Window ... Annexe
Quelques méthodes
blur( ) : enlève le focus de la fenêtre ;
close( ) : ferme la fenêtre ;
focus( ) : place le focus sur la fenêtre ;
moveBy( ) : déplace d’une distance ;
moveTo( ) : déplace la fenêtre vers un point spécifié ;
open( ) : ouvre une nouvelle fenêtre ;
print( ) : imprime le contenu de la fenêtre ;
resizeBy( ) : redimensionne d’un certain rapport ;
resizeTo( ) : redimensionne la fenêtre ;
setTimeout( ) : évalue une chaîne de caractère après un certain laps
de temps.
117 / 122
Annexe Evènement
118 / 122
Annexe Evènement
119 / 122
Annexe Evènement
120 / 122
Références Bibliographiques
121 / 122
Références Bibliographiques
122 / 122