JavaScript
H. Gharbi
INSAT 2010
JavaScript - Introduction
• langage de script, orienté objet, incorporé
dans un document.
• apporter des améliorations au langage HTML
(interactivité, web dynamique).
• exécuter des commandes du côté client
(navigateur).
• Javascript a été initialement élaboré par
Netscape en association avec Sun
Microsystem.
JavaScript et HTML (1)
• Insertion du block <script>..</script>
n’importe ou dans le code HTML.
<script language="JavaScript">
language="JavaScript">
............
</script>
<head>..</head>
JavaScript – Module externe
• faisant appel à un module externe se trouvant
à n’importe quelle adresse .
• un fichier de TEXTE SIMPLE sur le serveur à
son adresse d'appel (portant généralement
l'extension .js)
• Simplifie la maintenance quand plusieurs
pages font appel à des modules JavaScript
communs.
<script src="
src="URL externe">
="URL du module externe">
</script>
JavaScript – Règles de codage
• Chaque commande doit être terminée par un point-virgule
(;).
• Un nombre à virgule est séparé par un point (.) et non par
une virgule
• Le langage JavaScript est sensible à la casse
• JavaScript ignore l’espace, la tabulation et nouvelle ligne
dans les lignes de commande (ie. instruction)
• Il existe deux méthodes permettant d'intégrer des
commentaires à vos scripts.
Placer un double slash (//) devant le texte
Encadrer le texte par un slash suivi d'une étoile (/*) et la même
séquence inversée (*/)
JavaScript – Mots réservés
• Un nom de variable doit commencer par une lettre
(majuscule ou minuscule) ou un "_"
• Un nom de variables peut comporter des lettres, des
chiffres et les caractères _ et & (les espaces ne sont
pas autorisés!)
• Dans le JavaScript, les noms des variables et
fonctions doivent être différent des mots réservés.
abstract boolean break throws
byte char continue typeof
default delete do while
double else export transient
false final float var
for function goto with
if implements import true
instanceof in int void
switch
interface long native
new null package synchronised
this
private protected public
return short static
Masquage du script
• Masquer le script pour les anciens
navigateurs, pour ne pas être affiché à
l’intérieur de la page.
<script language="Javascript">
<!– –
Placez ici le code de votre script
// – – >
</script>
JavaScript – Déclaration de
variables
• Une variable est un objet repéré par son nom,
pouvant contenir des données, qui pourront
être modifiées lors de l'exécution du
programme.
• Explicite:
var chaine= "bonjour";
• Implicite:
chaine= "bonjour";
JavaScript – Déclaration et
Affectation
//Déclaration de i, de j et de k.
var i, j, k;
//Affectation de i.
i = 1;
//Déclaration et affectation de prix.
var prix = 0;
Opérateur Effet
==
Compare deux valeurs et Retourne 1 si X est égal
A ne pas confondre avec le opérateur d'égalité x==3
vérifie leur égalité à 3, sinon 0
signe d'affectation (=)!!
&& ET logique Vérifie que toutes les conditions sont réalisées ((condition1)&&(condition2))
<html>
<body>
<script language="JavaScript">
eval('function carre(n){ return n*n;};alert(carre(2));');
</script>
</body>
</html>
Fonctions de base (2)
• isFinite
Détermine si le paramètre est un nombre fini.
• isNaN
Détermine si le paramètre n’est pas un nombre
(NaN : Not a Number).
isFinite(240) //retourne true
isFinite("Un nombre") //retourne false
alert(5+"2"); // affiche 52
alert(5+parseInt("2")); // affiche 7
parseInt("10.33") // 10
parseInt("40 ans") // 40
parseInt(" il a 40") // NaN
parseInt("010") // 8
parseInt("0x10") // 16
parseFloat("15.45") //15.45
Fonctions de base (5)
• Number
convertit l'objet spécifié en valeur numérique
• String
convertit l'objet spécifié en chaîne de caractères
• escape
retourne la valeur codée de type URL-codée.
• Méthodes :
anchor("lien") : formate la chaîne avec la balise <A>
bold( ) : formate la chaîne avec la balise <B>
charAt( ) : renvoie le caractère se trouvant à une certaine position
charCodeAt( ) : renvoie le code du caractère se trouvant à une certaine
position
concat( ) : permet de concaténer 2 chaînes de caractères
fromCharCode( ) : renvoie le caractère associé au code
indexOf( ) : trouve l'indice d'occurrence d'un caractère dans une
chaîne
substr( ), substring( ) : retourne une portion de la chaîne
L'objet Array
• Propriété :
length : retourne le nombre d'éléments du
tableau
• Méthodes :
concat( ) : permet de concaténer 2 tableaux
reverse( ) : inverse le classement des éléments du
tableau
slice( ) : retourne une section du tableau
sort( ) : permet le classement des éléments du
tableau
L'objet Math
• Propriétés :
E, LN2, LN10, LOG2E, LOG10E, PI, SQRT2, SQRT1_2
• Méthodes :
abs(), max(), min(), sqrt(), pow(), exp(), …
ceil( ) : retourne le plus petit entier supérieur à un nombre
floor( ) : retourne le plus grand entier inférieur à un nombre
round( ) : arrondi un nombre à l'entier le plus proche
random( ) : retourne un nombre aléatoire entre 0 et 1
L'objet Date
• Propriété : aucune
• Méthodes :
getFullYear(), getYear(), getMonth(), getDay(), getDate(), getHours(),
getMinutes(), getSeconds(), getMilliseconds()
getUTCFullYear( ), … idem en temps universel
setFullYear( ), setYear( ), … modification d'une date
getTime( ) : retourne le temps stocké dans l'objet Date
getTimezoneOffset( ) : retourne la différence entre l'heure du client et
le temps universel
toGMTString( ), toLocaleString( ), toUTCString( ) : convertissent la date
en chaîne de caractère selon la convention GMT, selon la convention
locale ou en temps universel
Objets du navigateur
• Tout ce qui est affiché dans la page est traité
en tant qu’objet.
• Les objets du navigateur sont définis dans une
hiérarchie DOM (obj1.obj2.obj3…)
• L'objet le plus haut dans la hiérarchie est
"window" qui correspond à la fenêtre même
du navigateur.
• L'objet "document" fait référence au contenu
de la fenêtre
HTML DOM (Document Object
Model)
Accès aux éléments d’une page
• méthodes propres à l'objet document :
getElementById( ) trouve l'élément avec son identifiant
(ID)
getElementByName
• soit des collections d'objets qui regroupent
sous forme de tableaux Javascript tous les
éléments de type déterminé.
L'objet window (1)
• Propriétés : (accessibles avec IE et N)
closed : indique que la fenêtre a été fermée
defaultStatus : indique le message par défaut dans la barre de status
document : retourne l'objet document de la fenêtre
frames : retourne la collection de cadres dans la fenêtre
history : retourne l'historique de la session de navigation
location : retourne l'adresse actuellement visitée
name : indique le nom de la fenêtre
navigator : retourne le navigateur utilisé
opener : retourne l'objet window qui a créé la fenêtre en cours
parent : retourne l'objet window immédiatemment supérieur dans la
hiérarchie
self : retourne l'objet window correspondant à la fenêtre en cours
status : indique le message affiché dans la barre de status
top : retourne l'objet window le plus haut dans la hiérarchie
L'objet window (2)
• 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
L'objet document (1)
• Propriétés :
applets, forms, images, links : retourne les collection d'applets java,
formulaires… présente dans le document
cookie : permet de stocker un cookie
domain : indique le nom de domaine du serveur ayant apporté le document
referrer : indique l'adresse de la page précédente
title : indique le titre du document
<html><head><title>Test</title></head>
<body>
<a href="http://www.yahoo.fr/">Yahoo</a>
<a href="http://www.google.fr/">Google</a>
<script type="text/javascript">
alert(document.title);
for(var i=0; i < document.links.length; ++i) "<br>" + document.links[i]);
</script>
</body></html>
L'objet document (2)
• Méthodes :
close( ) : ferme le document en écriture;
open( ) : ouvre le document en écriture;
write( ) : écrit dans le document;
writeln( ) : écrit dans le document et effectue un
retour à la ligne
L'objet navigator
• Propriétés
appName : application (Netscape, Internet
Explorer)
appVersion : numero de version.
platform : système d’exploitation (Win32)
plugins
language
mimeTypes
• Méthodes
JavaEnabled()
JavaScript - Evénements
• Les événements sont associes aux actions de
l’utilisateur et à certaines balises.
• Exécuter du code JavaScript lorsque l’
événement se produit sur l’objet spécifié.
• Activation:
<tag … onEventName="code javascript;">
À l’intérieur d’un script :
function f() { … }
document.object.onEventName=f;
Liste des événements
Evénement Eléments supportés Description
onblur a, area, button, input, label, select, textarea un élément perd le focus
onchange input, select, textarea modification d'un champ de données
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onclick head, html, iframe, isindex, meta, param, script, style, title l’utilisateur clique sur un élément
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
ondblclick head, html, iframe, isindex, meta, param, script, style, title l’utilisateur double clique sur un élément
onfocus a, area, button, input, label, select, textarea le focus est donné à un élément
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onkeydown head, html, iframe, isindex, meta, param, script, style, title appui sur une touche du clavier
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onkeypress head, html, iframe, isindex, meta, param, script, style, title appui et relâchement d' une touche du clavier
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onkeyup head, html, iframe, isindex, meta, param, script, style, title relâchement d' une touche du clavier
onload frameset Toutes les frames sont chargées
onload body Le document a été chargé
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onmousedown head, html, iframe, isindex, meta, param, script, style, title le pointeur de la souris est cliqué
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onmousemove head, html, iframe, isindex, meta, param, script, style, title le pointeur de la souris est deplacé dans l'élément
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onmouseout head, html, iframe, isindex, meta, param, script, style, title le pointeur de la souris a quitté dans l'élément
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onmouseover head, html, iframe, isindex, meta, param, script, style, title le pointeur de la souris est mis sur l'élément
Tout les éléments sauf applet, base, basefont, bdo, br, font, frame, frameset,
onmouseup head, html, iframe, isindex, meta, param, script, style, title Le poineur de la souris est relâcheé
onreset form formulaire reinitialisé
onselect input, textarea Du texte a été selectionné
onsubmit form Formulaire envoyé
onunload frameset Toutes les frames sont fermées
onunload body Le document est fermé
Exercice 1
• Changement de la couleur de fond de la page
à partir d’une liste déroulante.
Exercice 2
• Page de conversion DinarEuro
Exercice 3
• Afficher l’heure dans une page
Exercice 4
1. Image-lien qui change au survol de la souris.
2. Des liens dans une page permettant de
changer le contenu d’une zone de texte juste
en mettant la souris sur l’un des liens.
3. Un script affichant dans la page la liste des
liens qui y figurent.
Exercice 5
• Page permettant de calculer la valeur du
factoriel d’un nombre (n!)
Exercice 6
• Changement de style d’une div par le biais
d’un bouton
Exercice 7
• Afficher/Masquer un exemple (div) dans une
page (nomElement.style.display=none|block)
Exercice 8
• Déplacer une image dans une page à l’aide des
buttons : Gauche, Droite, Haut et Bas.
Exercice 9
• Diaporama d’images dans une page (buttons) :
Jouer la diaporama des imges (cyclique)
Arrêter la diaporama
Image suivante
Image précédente
Dernière image
Première image