• Aucun résultat trouvé

[PPT] Programmer avec JavaScript avec exemples | Cours informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PPT] Programmer avec JavaScript avec exemples | Cours informatique"

Copied!
52
0
0

Texte intégral

(1)

JavaScript

(2)

Introduction

Introduction

(1)

(1)

Javascript permet de rendre dynamique un site internet

Javascript permet de rendre dynamique un site internet

développé en HTML.

développé en HTML.

Javascript permet de développer de véritables applications

Javascript permet de développer de véritables applications

fonctionnant exclusivement dans le cadre d'Internet.

fonctionnant exclusivement dans le cadre d'Internet.

Le Javascript est un langage de script simplifié orienté

Le Javascript est un langage de script simplifié orienté

objet dont la syntaxe est basée sur celle du Java.

objet dont la syntaxe est basée sur celle du Java.

Javascript a été initialement élaboré par Netscape en

Javascript a été initialement élaboré par Netscape en

association avec Sun Microsystem.

association avec Sun Microsystem.

 Plus tard, Microsoft développera son propre langage Javascript officiellement Plus tard, Microsoft développera son propre langage Javascript officiellement

connu sous le nom de

(3)

Introduction

Introduction

(2)

(2)

Contrairement à un applet Java qui est un programme

Contrairement à un applet Java qui est un programme

compilé, les scripts écrits en Javascript sont

compilé, les scripts écrits en Javascript sont

interprétés

interprétés

 Le Java, représenté par un ou plusieurs fichiers autonomes Le Java, représenté par un ou plusieurs fichiers autonomes

dont l'extension sera

dont l'extension sera *.class*.class ou ou *.jar*.jar, est invoqué par une balise , est invoqué par une balise HTML spécifique

HTML spécifique

 Le JavaScript est Le JavaScript est écrit directement au sein du document écrit directement au sein du document

HTML

HTML sous forme d'un script encadré par des balises HTML sous forme d'un script encadré par des balises HTML spéciales.

spéciales.

Javascript est standardisé par un comité spécialisé,

Javascript est standardisé par un comité spécialisé,

l'ECMA (European Computer Manufactures Association).

(4)

HTML et JavaScript

HTML et JavaScript

la page HTML devra TOUJOURS contenir les la page HTML devra TOUJOURS contenir les deux balises spécifiques et indispensables

deux balises spécifiques et indispensables

 Le code JavaScript s’intègre de deux manière avec le Le code JavaScript s’intègre de deux manière avec le

code HTML

code HTML

 1. Insertion directe1. Insertion directe dans le code HTML dans le code HTML

 Le code JavaScript s'insère le plus souvent dans la page HTML elle Le code JavaScript s'insère le plus souvent dans la page HTML elle

même.

même.

 C'est la méthode la plus simple et la plus fréquemment utilisée par les C'est la méthode la plus simple et la plus fréquemment utilisée par les

développeurs de sites Internet.

développeurs de sites Internet.

 2. Insertion comme un module externe2. Insertion comme un module externe

<script <script language="JavaScript"> language="JavaScript"> ... ... </script> </script>

(5)

1. Insertion dans une page HTML

1. Insertion dans une page HTML

 Il existe Il existe 2 manières2 manières d'insérer du code JavaScript d'insérer du code JavaScript

dans une page HTML

dans une page HTML

1.1 Insertion pour exécution directe

1.1 Insertion pour exécution directe

 Le code s'exécute automatiquementLe code s'exécute automatiquement

lors du chargement de la page HTML

lors du chargement de la page HTML

dans le navigateur en même temps que

dans le navigateur en même temps que

le contenu de la page HTML

le contenu de la page HTML

s'affiche à l'écran.

s'affiche à l'écran.

 Le code JavaScript est placéLe code JavaScript est placé

dans le corps même de la page HTML,

dans le corps même de la page HTML,

entre les balises

entre les balises <body><body> ... Et ... Et ... ... </body></body> <html> <head> <title>... </title> </head> <body> <script language="JavaScript"> alert(‘bonjour’); </script> </body> </html>

(6)

1.2 Insertion et exécution événementielle

1.2 Insertion et exécution événementielle

 Le code javascript est d'abord lu par Le code javascript est d'abord lu par

le navigateur, stocké en mémoire,

le navigateur, stocké en mémoire,

pour ne s'exécuter que sur demande,

pour ne s'exécuter que sur demande,

lors du déclenchement d ’un

lors du déclenchement d ’un

événement.

événement.

 Le code JavaScript est placé dans le Le code JavaScript est placé dans le corps même de la page HTML, entre

corps même de la page HTML, entre

les balises

les balises <head><head> ... et ... ... et ...

</head> </head>

 Le code s'exécutera seulement lors Le code s'exécutera seulement lors d'un événement généré par

d'un événement généré par

intervention de l'utilisateur.

intervention de l'utilisateur.  Il faut écrire le code Il faut écrire le code

correspondant à cet événement

correspondant à cet événement

dans le corps du document HTML.

dans le corps du document HTML.

<html> <html> <head> <head> <title> ... <title> ... </title> </title> <script <script language="JavaScript"> language="JavaScript"> function auRevoir () function auRevoir () { alert(‘ Au { alert(‘ Au revoir’);} revoir’);} </script> </script> </head> </head> <body <body onUnload=auRevoir();> onUnload=auRevoir();> Excécution différée Excécution différée </body> </body> </html> </html>

(7)

2. Insertion par appel de module externe

2. Insertion par appel de module externe

 On peut insérer du code JavaScript en faisant appel à un On peut insérer du code JavaScript en faisant appel à un

module externe se trouvant à n’importe quelle adresse

module externe se trouvant à n’importe quelle adresse

(URI).

(URI).

 Les deux balises de Javascript doivent être placés entre les Tags Les deux balises de Javascript doivent être placés entre les Tags

<body>

<body> et et </body></body> dans le cas d'une exécution directe ou dans le cas d'une exécution directe ou entre les Tags

entre les Tags <head><head> et et </head></head> de la page HTML pour une de la page HTML pour une exécution différée.

exécution différée.

 Stocké dans un fichier sur le serveur à son adresse d'appel sous Stocké dans un fichier sur le serveur à son adresse d'appel sous forme de

forme de TEXTE SIMPLETEXTE SIMPLE portant l'extension portant l'extension .txt.txt ou ou .js.js

 Simplifie la maintenance des sites faisant appel à des modules Simplifie la maintenance des sites faisant appel à des modules JavaScript communs à plusieurs pages HTML.

JavaScript communs à plusieurs pages HTML.

 Inconvénient : l'appel au code externe génère une requête Inconvénient : l'appel au code externe génère une requête supplémentaire vers le serveur, et encombre le réseau

supplémentaire vers le serveur, et encombre le réseau

<script src="

<script src="URL du module externeURL du module externe"> "> ...

... </script> </script>

(8)

Entrée et sortie de données avec JavaScript

Entrée et sortie de données avec JavaScript

 3 types de boites de messages peuvent être affichés en 3 types de boites de messages peuvent être affichés en

utilisant Javascript :

utilisant Javascript : Alerte, Confirmation et InviteAlerte, Confirmation et Invite

Méthode alert()Méthode alert()

sert à afficher à l’utilisateur des informations simples de type texte. Une fois sert à afficher à l’utilisateur des informations simples de type texte. Une fois

que ce dernier a lu le message, il doit cliquer sur OK pour faire disparaître la que ce dernier a lu le message, il doit cliquer sur OK pour faire disparaître la boîte

boîte

Méthode confirm()Méthode confirm()

permet à l’utilisateur de choisir entre les boutons OK et Annuler.permet à l’utilisateur de choisir entre les boutons OK et Annuler.

Méthode prompt()Méthode prompt()

 La méthode prompt() permet à l’utilisateur de taper son propre message en La méthode prompt() permet à l’utilisateur de taper son propre message en

réponse à la question posée réponse à la question posée

 La méthode La méthode document.writedocument.write permet d ’écrire du code HTML permet d ’écrire du code HTML

dans la page WEB

(9)

Entrée et sortie de données avec JavaScript

Entrée et sortie de données avec JavaScript

<html> <head>

<title> une page simple </title> </head> <body> Bonjour <script language='javascript'> alert('bonjour'); document.write (

prompt('quel est votre nom ?','Indiquer votre nom ici') );

confirm('quel bouton allez-vous choisir ?'); </script>

</body> </html>

(10)

La structure d’un script en JavaScript

La structure d’un script en JavaScript

 La syntaxe du langage Javascript s'appuie sur le modèle de La syntaxe du langage Javascript s'appuie sur le modèle de

Java et C

Java et C

Règles généralesRègles générales

L'insertion des espaces peut s'effectué n'importe où dans le scriptL'insertion des espaces peut s'effectué n'importe où dans le scriptChaque commande doit être terminée par un point-virgule (;).Chaque commande doit être terminée par un point-virgule (;).

 Un nombre à virgule est séparé par un point (.) et non par une virguleUn nombre à virgule est séparé par un point (.) et non par une virguleLe langage Javascript y est Le langage Javascript y est sensible à la cassesensible à la casse

Il existe deux méthodes permettant d'intégrer des commentaires à Il existe deux méthodes permettant d'intégrer des commentaires à

vos scripts

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

(11)

Les variables

Les variables

(1)

(1)

Déclaration et affectation

Déclaration et affectation

Le mot-clé varLe mot-clé var permet de déclarer permet de déclarer

une ou plusieurs variables.

une ou plusieurs variables.

Après la déclaration de la variable, il est Après la déclaration de la variable, il est

possible de lui affecter une valeur par possible de lui affecter une valeur par l'intermédiaire du signe d'égalité (

l'intermédiaire du signe d'égalité (==).).

 Si une valeur est affectée à une Si une valeur est affectée à une

variable sans que cette dernière ne

variable sans que cette dernière ne

soit déclarée, alors Javascript la

soit déclarée, alors Javascript la

déclare automatiquement. déclare automatiquement. //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;  //Déclaration et affectation de caractere

(12)

Les variables

Les variables

(2)

(2)

Déclaration et affectation

Déclaration et affectation

 La lecture d'une variable non déclarée provoque une erreurLa lecture d'une variable non déclarée provoque une erreur  Une variable correctement déclarée mais dont aucune Une variable correctement déclarée mais dont aucune

valeur n'est affectée, est indéfinie (undefined).

valeur n'est affectée, est indéfinie (undefined). 

La portée

La portée

 les variables peuvent être globales ou locales.les variables peuvent être globales ou locales.

 Une variable globale est déclarée en début de script et est Une variable globale est déclarée en début de script et est

accessible à n'importe quel endroit du programme.

accessible à n'importe quel endroit du programme.

 Une variable locale est déclarée à l'intérieur d'une fonction Une variable locale est déclarée à l'intérieur d'une fonction

et n'est utilisable que dans la fonction elle-même.

(13)

Les variables

Les variables

(3)

(3)

Contraintes concernant les noms de variablesContraintes concernant les noms de variables

 Les noms de variables ne peuvent contenir que des lettres, Les noms de variables ne peuvent contenir que des lettres, chiffres, ou le caractère "_" (underscore)

chiffres, ou le caractère "_" (underscore)

– Mon_Prenom est un nom valide

 Les caractères spéciaux et accentués sont interdits (é, à, ç, Les caractères spéciaux et accentués sont interdits (é, à, ç, ï, etc..)

ï, etc..)

– Mon_Prénom n'est pas un nom valide. Il y a un caractère accentué.

 Les majuscules et les minuscules ont leur importance. Les majuscules et les minuscules ont leur importance.

– MonPrenom est différent de Monprenom.

 Un nom de variable ne peut contenir d'espaces. Un nom de variable ne peut contenir d'espaces.

– Mon Prenom n'est pas un nom de variable correct. Il y a un espace.

 Les mots réservés JavaScript ne peuvent être utilisés Les mots réservés JavaScript ne peuvent être utilisés comme noms de variable.

(14)

Les variables

Les variables

(4)

(4)

 Le type d’une variable dépend de la valeur stockée dans cette Le type d’une variable dépend de la valeur stockée dans cette

variable.

variable. Pas de déclaration de type.Pas de déclaration de type.

 Exemple Exemple

var maVariable = ‘ Philippe ’;

var maVariable = ‘ Philippe ’;

maVariable =10;

maVariable =10;

trois principaux types de valeurstrois principaux types de valeurs

StringString

Number Number : 10^-308 >nombre < 10^308: 10^-308 >nombre < 10^308

• Les nombres entiers

• les nombres décimaux en virgule flottant – 3 valeurs spéciales :

• Positive Infinity ou +Infinity (valeur infini positive) • Negative Infinity ou –Infinity (valeur infinie négative)

• Nan (Not a Number) habituellement générée comme résultat d’une opération mathamatique incohérente

BooleanBoolean

(15)

Valeurs spéciales

Valeurs spéciales

JavaScript inclut aussi deux types de données

JavaScript inclut aussi deux types de données

spéciaux :

spéciaux :

Null :Null : possède une seule valeur, possède une seule valeur, nulnull, qui signifie l’absence e données l, qui signifie l’absence e données

dans une variable dans une variable

Undefined :Undefined : possède une seule valeur, possède une seule valeur, undifinedundifined. Une variable dont le . Une variable dont le

contenu n’est pas clair car elle n’a jamais stocké de valeur, pas même contenu n’est pas clair car elle n’a jamais stocké de valeur, pas même

null

(16)

Les opérations sur les chaînes

Les opérations sur les chaînes

 La concaténationLa concaténation

– Var chaine = « bonjour » + « FI3/FCD1 »;

 Déterminer la longueur d’une chaîneDéterminer la longueur d’une chaîne

– Var ch1 = « bonjour »; – Var longueur = ch1.length;

 Identifier le nième caractère d’une chaîneIdentifier le nième caractère d’une chaîne

– Var ch1 =« Rebonjour ! »; – Var carac = ch1.charAt(2);

 Extraction d’une partie de la chaîneExtraction d’une partie de la chaîne

– Var dateDuJour = « 04/04/03 »

– Var mois = datteDuJour.substring(3, 5);

• 3: est l’indice du premier caractère de la sou-chaîne à extraire • 5 : indice du dernier caractère à prendre en considération ; ce

(17)

Les fonctions

Les fonctions

prédéfinies (1)

prédéfinies (1)

eval

 Cette fonction exécute un code Javascript à partir Cette fonction exécute un code Javascript à partir

d'une chaîne de caractères.

d'une chaîne de caractères.

 ...

<SCRIPT LANGUAGE="JavaScript"> function evaluation() {

document.formulaire.calcul.value=eval(document.formulaire.saisie.value); } </SCRIPT>

...

<FORM NAME="formulaire">

Saisissez une expression mathématique : <INPUT TYPE="text" NAME=saisie MAXLENGTH=40 SIZE=40>

<INPUT TYPE="button" VALUE="evaluation." onClick="evaluation()"> <INPUT TYPE="text" NAME=calcul MAXLENGTH=40 SIZE=40>

(18)

Les fonctions prédéfinies

Les fonctions prédéfinies

(2)

(2)

isFinite

isFinite

Détermine si le parametre est un nombre fini.

Détermine si le parametre est un nombre fini.

Renvoie

Renvoie

false

false

si ce n'est pas un nombre ou

si ce n'est pas un nombre ou

l'infini positif ou infini négatif.

l'infini positif ou infini négatif.

isNaN

isNaN

détermine si le parametre n’est pas un nombre

détermine si le parametre n’est pas un nombre

(NaN : Not a Number).

(NaN : Not a Number).

isFinite(240) //retourne true 

isFinite("Un nombre") //retourne false

isNaN("un nombre") //retourne true 

(19)

Les fonctions

Les fonctions

prédéfinies (3)

prédéfinies (3)

parseFloat

parseFloat

 analyse une chaîne de caractères et retourne un analyse une chaîne de caractères et retourne un

nombre décimal.

nombre décimal.

 Si l'argument évalué n'est pas un nombre, renvoie Si l'argument évalué n'est pas un nombre, renvoie NaNNaN

(Not a Number).

(Not a Number).

parseInt

parseInt

analyse une chaîne de caractères et retourne un analyse une chaîne de caractères et retourne un

nombre entier de la base spécifiée.

nombre entier de la base spécifiée.

La base peut prendre les valeurs La base peut prendre les valeurs 1616 (hexadécimal) (hexadécimal) 1010

(décimal),

(décimal), 88 (octal), (octal), 22 (binaire). (binaire).

var numero="125"; 

var nombre=parseFloat(numero); //retourne le nombre 125

var prix=30.75;

(20)

Les fonctions

Les fonctions

prédéfinies (4)

prédéfinies (4)

Number

Number

 convertit l'objet spécifié en valeur numériqueconvertit l'objet spécifié en valeur numérique

String

String

 convertit l'objet spécifié en chaîne de caractèresconvertit l'objet spécifié en chaîne de caractères

EscapeEscape

 retourne la valeur hexadécimale à partir d'une chaîne de retourne la valeur hexadécimale à partir d'une chaîne de

caractère codée en ISO-Latin-1.

caractère codée en ISO-Latin-1.

 var jour = new Date("December 17, 1995 03:24:00");//converit la date en millisecondes

alert (Number(jour));

jour = new Date(430054663215);//Convertit le nombre en date Mois jour, Annéee etc.

alert (String(jour));

(21)

Les Objets

Les Objets

(1)

(1)

 Les objets de JavaScript, sont soit des entités pré définies du Les objets de JavaScript, sont soit des entités pré définies du

langage, soit créés par le programmeur.

langage, soit créés par le programmeur.

 Par exemple, le navigateur est un objet qui s'appelle "navigatorPar exemple, le navigateur est un objet qui s'appelle "navigator". ". La fenêtre du navigateur se nomme "windowLa fenêtre du navigateur se nomme "window""

La page HTML est un autre objet, que l'on appelle "documentLa page HTML est un autre objet, que l'on appelle "document". ". Un formulaire à l'intérieur d'un "documentUn formulaire à l'intérieur d'un "document", est aussi un objet. ", est aussi un objet.

Un lien hypertexte dans une page HTML, est encore un autre objet. Il s'appelle "linkUn lien hypertexte dans une page HTML, est encore un autre objet. Il s'appelle "link". ".

etc...

etc...

 Les objets javascript peuvent réagir à des "Evénements". Les objets javascript peuvent réagir à des "Evénements".  Tous les navigateurs ne supportent pas les mêmes objetsTous les navigateurs ne supportent pas les mêmes objets  Accès aux propriétés d’un objetAccès aux propriétés d’un objet

 voiture.couleur.valuevoiture.couleur.value

(22)

Les objets (2)

Les objets (2)

L’opérateur New

L’opérateur New

 L'opérateur L'opérateur newnew est utilisé pour créer une nouvelle est utilisé pour créer une nouvelle

instance ou un nouveau type d'objet défini par

instance ou un nouveau type d'objet défini par

l'utilisateur ou de l'un des types d'objets prédéfinis,

l'utilisateur ou de l'un des types d'objets prédéfinis, ArrayArray

,

, BooleanBoolean, Date, Date, Function, Function, Image, Image, Number, Number, Object, Object, ou , ou

String

String..

nouvel_objet nouvel_objet = = new new

type_objet(parametres)

type_objet(parametres)

(23)

Les objets (3)

Les objets (3)

L’opérateur Typeof

L’opérateur Typeof

 L'opérateur L'opérateur typeoftypeof renvoie une chaîne de caractères renvoie une chaîne de caractères

indiquant quel est le type de l'opérande.

indiquant quel est le type de l'opérande.

var i = 1;

typeof i; //retourne number 

var titre="Les raisins de la colère";

typeof titre; //retourne string  var jour = new Date();

typeof jour; //retourne object 

var choix = true; typeof choix; //retourne boolean  var cas = null; typeof cas; //retourne object 

typeof parseFloat; //retourne function 

typeof Math; //retourne object (IE 5.*, NS 6.*, NS 4.78, Opera 6.*, Opera 5.* 

(24)

L'objet

L'objet

String (1)

String (1)

 Propriété : Propriété :

length length : retourne la longueur de la chaîne de caractères;: retourne la longueur de la chaîne de caractères;

 Méthodes :Méthodes :

anchor( )anchor( ) : formate la chaîne avec la balise <A> nommée; : formate la chaîne avec la balise <A> nommée;b( )b( ) : formate la chaîne avec la balise <B>; : formate la chaîne avec la balise <B>;

big( )big( ) : formate la chaîne avec la balise <BIG>; : formate la chaîne avec la balise <BIG>;

charAt( )charAt( ) : renvoie le caractère se trouvant à une certaine position; : renvoie le caractère se trouvant à une certaine position;charCodeAt( )charCodeAt( ) : renvoie le code du caractère se trouvant à une : renvoie le code du caractère se trouvant à une

certaine position;

certaine position;

concat( )concat( ) : permet de concaténer 2 chaînes de caractères; : permet de concaténer 2 chaînes de caractères;fromCharCode( )fromCharCode( ) : renvoie le caractère associé au code; : renvoie le caractère associé au code;

indexOf( )indexOf( ) : permet de trouver l'indice d'occurrence d'un caractère : permet de trouver l'indice d'occurrence d'un caractère

dans une chaîne;

(25)

L'objet

L'objet

String (2)

String (2)

italics( )italics( ) : formate la chaîne avec la balise <I>; : formate la chaîne avec la balise <I>;

lastIndexOf( )lastIndexOf( ) : permet de trouver le dernier indice d'occurrence : permet de trouver le dernier indice d'occurrence

d'un caractère;

d'un caractère;

link( )link( ) : formate la chaîne avec la balise <A> pour permettre de : formate la chaîne avec la balise <A> pour permettre de

faire un lien;

faire un lien;

slice( )slice( ) : retourne une portion de la chaîne; : retourne une portion de la chaîne;substr( )substr( ) : retourne une portion de la chaîne; : retourne une portion de la chaîne;substring( )substring( ) : retourne une portion de la chaîne; : retourne une portion de la chaîne;

toLowerCase( )toLowerCase( ) : permet de passer toute la chaîne en : permet de passer toute la chaîne en

minuscule;

minuscule;

toUpperCase( )toUpperCase( ) : permet de passer toute la chaîne en : permet de passer toute la chaîne en

majuscules;

(26)

L'objet

L'objet

Array

Array

Propriété :

Propriété :

lengthlength : retourne le nombre d'éléments du tableau; : retourne le nombre d'éléments du tableau;

Méthodes :

Méthodes :

concat( )concat( ) : permet de concaténer 2 tableaux; : permet de concaténer 2 tableaux;

join( )join( ) : converti un tableau en chaîne de caractères; : converti un tableau en chaîne de caractères;reverse( )reverse( ) : inverse le classement des éléménts du : inverse le classement des éléménts du

tableau;

tableau;

slice( )slice( ) : retourne une section du tableau; : retourne une section du tableau;

(27)

L'objet

L'objet

Math (1)

Math (1)

Propriétés :

Propriétés :

EE : renvoie la valeur de la constante d'Euler (~2.718); : renvoie la valeur de la constante d'Euler (~2.718);LN2 LN2 : renvoie le logarithme népérien de 2 (~0.693);: renvoie le logarithme népérien de 2 (~0.693);LN10 LN10 : renvoie le logarithme népérien de 10 (~2.302);: renvoie le logarithme népérien de 10 (~2.302);LOG2ELOG2E : renvoie le logarithme en base 2 de e (~1.442); : renvoie le logarithme en base 2 de e (~1.442);LOG10ELOG10E : renvoie le logarithme en base 10 de e : renvoie le logarithme en base 10 de e

(~0.434);

(~0.434);

PIPI : renvoie la valeur du nombre pi (~3.14159); : renvoie la valeur du nombre pi (~3.14159);

SQRT1_2SQRT1_2 : renvoie 1 sur racine carrée de 2 (~0.707); : renvoie 1 sur racine carrée de 2 (~0.707);SQRT2SQRT2 : renvoie la racine carrée de 2 (~1.414); : renvoie la racine carrée de 2 (~1.414);

(28)

L'objet

L'objet

Math (2)

Math (2)

Méthodes :

Méthodes :

abs( ), exp( ), log(), sin( ), cos( ), tan( ), asin( ), acos( ), abs( ), exp( ), log(), sin( ), cos( ), tan( ), asin( ), acos( ),

atan( ), max( ), min( ), sqrt( )

atan( ), max( ), min( ), sqrt( ) sont les opérations sont les opérations mathématiques habituelles;

mathématiques habituelles;

atan2( )atan2( ) : retourne la valeur radian de l'angle entre l'axe des : retourne la valeur radian de l'angle entre l'axe des

abscisses et un point;

abscisses et un point;

ceil( )ceil( ) : retourne le plus petit entier supérieur à un nombre; : retourne le plus petit entier supérieur à un nombre;floor( )floor( ) : retourne le plus grand entier inférieur à un nombre; : retourne le plus grand entier inférieur à un nombre;pow( )pow( ) : retourne le résultat d'un nombre mis à une certaine : retourne le résultat d'un nombre mis à une certaine

puissance;

puissance;

random( )random( ) : retourne un nombre aléatoire entre 0 et 1; : retourne un nombre aléatoire entre 0 et 1;round( )round( ) : arrondi un nombre à l'entier le plus proche. : arrondi un nombre à l'entier le plus proche.

(29)

L'objet

L'objet

Date (1)

Date (1)

Propriété : aucune;

Propriété : aucune;

Méthodes :

Méthodes :

getFullYear( ), getYear( ), getMonth( ), getDay( ), getFullYear( ), getYear( ), getMonth( ), getDay( ),

getDate(), getHours( ), getMinutes( ), getSeconds( ), getDate(), getHours( ), getMinutes( ), getSeconds( ), getMilliseconds( ):

getMilliseconds( ): retournent respectivement l'année retournent respectivement l'année complète, l'année (2chiffres), le mois, le jour de la

complète, l'année (2chiffres), le mois, le jour de la

semaine, le jour du mois, l'heure, les minutes, les

semaine, le jour du mois, l'heure, les minutes, les

secondes et les millisecondes stockés dans l'objet

secondes et les millisecondes stockés dans l'objet DateDate;;

getUTCFullYear( ), getUTCYear( ), …getUTCFullYear( ), getUTCYear( ), … retournent retournent

respectivement l'année complète, l'année (2chiffres), …

respectivement l'année complète, l'année (2chiffres), …

stockés dans l'objet

stockés dans l'objet DateDate en temps universel; en temps universel;

setFullYear( ), setYear( ), …setFullYear( ), setYear( ), … remplacent respectivement remplacent respectivement

l'année complète, l'année (2chiffres), … dans l'objet

(30)

L'objet

L'objet

Date (2)

Date (2)

setUTCFullYear( ), setUTCYear( ),setUTCFullYear( ), setUTCYear( ), … remplacent l'année … remplacent l'année

complète, l'année (2chiffres), … dans l'objet

complète, l'année (2chiffres), … dans l'objet DateDate en temps en temps universel;

universel;

getTime( )getTime( ) : retourne le temps stocké dans l'objet : retourne le temps stocké dans l'objet DateDate;;

getTimezoneOffset( )getTimezoneOffset( ) : retourne la différence entre l'heure : retourne la différence entre l'heure

du client et le temps universel;

du client et le temps universel;

toGMTString( ), toLocaleString( ), toUTCString( )toGMTString( ), toLocaleString( ), toUTCString( ) : :

convertissent la date en chaîne de caractère selon la

convertissent la date en chaîne de caractère selon la

convention GMT, selon la convention locale ou en temps

convention GMT, selon la convention locale ou en temps

universel;

(31)

Les objets du navigateur (1)

Les objets du navigateur (1)

L'objet le plus haut dans la hiérarchie est window

L'objet le plus haut dans la hiérarchie est

window

qui

qui

correspond à la fenêtre même du navigateur.

correspond à la fenêtre même du navigateur.

L'objet document

L'objet

document

fait référence au contenu de la

fait référence au contenu de la

fenêtre.

fenêtre.

document

document

regroupe au sein de propriétés l'ensemble

regroupe au sein de propriétés l'ensemble

des éléments HTML présents sur la page.

des éléments HTML présents sur la page. Pour

atteindre ces différents éléments, nous utiliserons :

 soit des méthodes propres à l'objetsoit des méthodes propres à l'objet document,document, comme la comme la

méthode

méthode getElementById( ),getElementById( ), qui permet de trouver qui permet de trouver l'élément en fonction de son identifiant (ID);

l'élément en fonction de son identifiant (ID);

 soit des collections d'objetssoit des collections d'objets qui regroupent sous forme de qui regroupent sous forme de

tableaux Javascript tous les éléments de type déterminé.

(32)

Les objets du navigateur (2)

(33)

L'objet

L'objet

window (1)

window (1)

Propriétés : (accessibles avec IE et N)

Propriétés : (accessibles avec IE et N)

closed

closed

: indique que la fenêtre a été fermée;

: indique que la fenêtre a été fermée;

defaultStatus

defaultStatus

: indique le message par défaut dans la

: indique le message par défaut dans la

barre de status;

barre de status;

document

document

: retourne l'objet

: retourne l'objet

document

document

de la fenêtre;

de la fenêtre;

frames

frames

: retourne la collection de cadres dans la

: retourne la collection de cadres dans la

fenêtre;

fenêtre;

history

history

: retourne l'historique de la session de

: retourne l'historique de la session de

navigation;

navigation;

location

location

: retourne l'adresse actuellement visitée;

: retourne l'adresse actuellement visitée;

name :

name :

indique le nom de la fenêtre;

indique le nom de la fenêtre;

(34)

L'objet

L'objet

window (2)

window (2)

navigator

navigator

: retourne le navigateur utilisé;

: retourne le navigateur utilisé;

opener

opener

: retourne l'objet

: retourne l'objet

window

window

qui a créé la

qui a créé la

fenêtre en cours;

fenêtre en cours;

parent

parent

: retourne l'objet

: retourne l'objet

window

window

immédiatemment

immédiatemment

supérieur dans la hiérarchie;

supérieur dans la hiérarchie;

self :

self :

retourne l'objet window correspondant à la

retourne l'objet window correspondant à la

fenêtre en cours;

fenêtre en cours;

status

status

: indique le message affiché dans la barre de

: indique le message affiché dans la barre de

status;

status;

top

top

: retourne l'objet

: retourne l'objet

window

window

le plus haut dans la

le plus haut dans la

hiérarchie.

hiérarchie.

(35)

L'objet

L'objet

window (3)

window (3)

Méthodes :

Méthodes :

blur( )

blur( )

: enlève le focus de la fenêtre;

: enlève le focus de la fenêtre;

close( )

close( )

: ferme la fenêtre;

: ferme la fenêtre;

focus( )

focus( )

: place le focus sur la fenêtre;

: place le focus sur la fenêtre;

moveBy( )

moveBy( )

: déplace d'une distance;

: déplace d'une distance;

moveTo( )

moveTo( )

: déplace la fenêtre vers un point spécifié;

: déplace la fenêtre vers un point spécifié;

open( )

open( )

: ouvre une nouvelle fenêtre;

: ouvre une nouvelle fenêtre;

print( )

print( )

: imprime le contenu de la fenêtre;

: imprime le contenu de la fenêtre;

resizeBy( )

resizeBy( )

: redimensionne d'un certain rapport;

: redimensionne d'un certain rapport;

resizeTo( )

resizeTo( )

: redimensionne la fenêtre;

: redimensionne la fenêtre;

setTimeout( )

setTimeout( )

: évalue une chaîne de caractère après un

: évalue une chaîne de caractère après un

certain laps de temps.

(36)

L'objet

L'objet

document (1)

document (1)

Propriétés :

Propriétés :

applets

applets

: retourne la collection d'applets java présente

: retourne la collection d'applets java présente

dans le document;

dans le document;

cookie

cookie

: permet de stocker un cookie;

: permet de stocker un cookie;

domain

domain

: indique le nom de domaine du serveur ayant

: indique le nom de domaine du serveur ayant

apporté le document;

apporté le document;

forms

forms

: retourne la collection de formulaires présents

: retourne la collection de formulaires présents

dans le document;

dans le document;

images

images

: retourne la collection d'images présentes

: retourne la collection d'images présentes

dans le document;

dans le document;

links

links

: retourne la collection de liens présents dans le

: retourne la collection de liens présents dans le

document;

document;

(37)

L'objet

L'objet

document (2)

document (2)

referrer

referrer

: indique l'adresse de la page

: indique l'adresse de la page

précédente;

précédente;

title

title

: indique le titre du document.

: indique le titre du document.

Méthodes :

Méthodes :

close( )

close( )

: ferme le document en écriture;

: ferme le document en écriture;

open( )

open( )

: ouvre le document en écriture;

: ouvre le document en écriture;

write( )

write( )

: écrit dans le document;

: écrit dans le document;

writeln( )

writeln( )

: écrit dans le document et effectue un

: écrit dans le document et effectue un

retour à la ligne

retour à la ligne

(38)

L'objet

L'objet

navigator

navigator

Propriétés

Propriétés

appName

appName

:

:

application (Netscape, Internet Explorer)

application (Netscape, Internet Explorer)

appVersion

appVersion

:

:

numero de version

numero de version

.

.

platform

platform

:

:

système d’exploitation (Win32)

système d’exploitation (Win32)

plugins

plugins

language

language

mimeTypes

mimeTypes

(39)

Les événements (1)

Les événements (1)

 Javascript est dépendant des événementsJavascript est dépendant des événements

 se produisent lors d'actions diverses sur les objets d'un se produisent lors d'actions diverses sur les objets d'un

document HTML. document HTML. – onLoad; – onClick – onMouseover – onMouseout – ...

 Il est possible de baser l’exécution de fonctions sur des Il est possible de baser l’exécution de fonctions sur des

événements

(40)

Les événements

Les événements

(2)

(2)

Evénement onLoad

Evénement onLoad

 Se produit lorsque une page web est chargée dans la Se produit lorsque une page web est chargée dans la

fenêtre du navigateur

fenêtre du navigateur

 Toute la page (y compris les images qu’elle contient Toute la page (y compris les images qu’elle contient

si leur chargement est prévu) doit avoir été chargée

si leur chargement est prévu) doit avoir été chargée

pour qu’il ait lieu

pour qu’il ait lieu

 Cet événement peut être associé à une image Cet événement peut être associé à une image

seulement ; auquel cas, il se produit une fois son

seulement ; auquel cas, il se produit une fois son

chargement terminé

chargement terminé

<HTML><BODY onLoad="alert('page chargée');"> Exemple de l'événement onLoad

(41)

Les événements

Les événements

(3)

(3)

Evénement onClick

Evénement onClick

 Se produit lorsque l’utilisateur clique sur un élément Se produit lorsque l’utilisateur clique sur un élément

spécifique dans une page, comme un lien hypertexte, une

spécifique dans une page, comme un lien hypertexte, une

image, un bouton, du texte, etc.

image, un bouton, du texte, etc.

 Ces éléments sont capables de répondre séparément à Ces éléments sont capables de répondre séparément à

cet événement

cet événement

 Il peut également être déclenché lorsque l’utilisateur Il peut également être déclenché lorsque l’utilisateur

clique n’importe où sur la page s’il a été associé non pas à

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

un élément spécifique, mais à l’élément body tout entier <HTML><BODY>

<INPUT TYPE="Button" Value="cliquer ici” onClick="alert('Clic')">

(42)

Les événements

Les événements

(4)

(4)

Événement onMouseover

Événement onMouseover

 Analogue à onClick sauf qu’il suffit que l’utilisateur Analogue à onClick sauf qu’il suffit que l’utilisateur

place le pointeur de sa souris sur l’un des éléments

place le pointeur de sa souris sur l’un des éléments

précités (lien hypertexte, image, bouton, texte, etc.)

précités (lien hypertexte, image, bouton, texte, etc.)

pour qu’il ait lieu

pour qu’il ait lieu

Événement onMouseout

Événement onMouseout

 A l’inverse de onMouseover, cet événement se A l’inverse de onMouseover, cet événement se

produit lorsque le pointeur de la souris quitte la zone

produit lorsque le pointeur de la souris quitte la zone

de sélection d’un élément.

de sélection d’un élément. <HTML><BODY>

<IMG SRC="image.gif" onMouseOver="src='image2.gif';" onMouseOut="src='image.gif';">

(43)

Nommage des objets-éléments

Nommage des objets-éléments

 Pour pouvoir manipuler un objet en javaScript, il doit posséder un nomPour pouvoir manipuler un objet en javaScript, il doit posséder un nom  Pour pouvoir distinguer les différents objets-éléments d’une page web, il Pour pouvoir distinguer les différents objets-éléments d’une page web, il

suffit de leur donner un nom à travers de l’attribut NAME

suffit de leur donner un nom à travers de l’attribut NAME

– <Table Name=« tableau1 »>… – <Table Name=« tableau2 »>… – <Form Name = « formulaire1 »>… – <Form Name =« formulaire2 »>… – <Textarea Name =« texte1»>…

 Dans le cas où l’objet serait unique alors pas besoin de nom pour Dans le cas où l’objet serait unique alors pas besoin de nom pour désigner cet objet

désigner cet objet

– Exemple : le cas de BODY(une seul BODY par document), DOCUMENT (un seul DOCUMENT par fenêtre)

(44)

Manipulation des objets

Manipulation des objets

 Pour adresser un objet, il ne suffit pas de donner son nom : il faut Pour adresser un objet, il ne suffit pas de donner son nom : il faut

aussi préciser son « chemin d’accès » dans l’arborescence de la

aussi préciser son « chemin d’accès » dans l’arborescence de la

structure

structure

 Si le nom de la fenêtre est omis, le navigateur utilisera par défaut la Si le nom de la fenêtre est omis, le navigateur utilisera par défaut la

fenêtre courante

fenêtre courante

 Dans le cas de cadres (frames), il est pertinent de donner le nom de la Dans le cas de cadres (frames), il est pertinent de donner le nom de la

fenêtre

fenêtre

 Il est possible aussi d’omettre window.document : l’adressage réussi Il est possible aussi d’omettre window.document : l’adressage réussi

puisqu’il n’y a qu’un seul objet « document» dans la fenêtre

puisqu’il n’y a qu’un seul objet « document» dans la fenêtre

<HTML><BODY

onLoad="window.document.formulaire.zone.value='Bonjour';"> <FORM name="formulaire"><INPUT NAME="zone" TYPE="text">

(45)

Les Cookies

Les Cookies

(1)

(1)

Un "Cookie" est une chaîne de caractères qu'une Un "Cookie" est une chaîne de caractères qu'une

page HTML (contenant du code JavaScript) peut

page HTML (contenant du code JavaScript) peut

écrire à un emplacement UNIQUE et bien défini sur le

écrire à un emplacement UNIQUE et bien défini sur le

disque dur du client.

disque dur du client.

 Cette chaîne de caractères ne peut être lue que par le seul serveur Cette chaîne de caractères ne peut être lue que par le seul serveur

qui l'a générée. qui l'a générée.

Que faire avec un cookieQue faire avec un cookie

 Transmettre des valeurs (contenu de variables) d'une page HTML à Transmettre des valeurs (contenu de variables) d'une page HTML à

une autre. 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 Personnaliser les pages présentées à l'utilisateur en reprenant par

exemple son nom en haut de chaque page. exemple son nom en haut de chaque page.

(46)

Les Cookies

Les Cookies

(2)

(2)

Limitations lors de l’utilisation des cookies.

Limitations lors de l’utilisation des cookies.

 On ne peut pas écrire autant de cookies que l'on veut sur le poste 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 :

de l'utilisateur (client d’une page). Il y a des limites :

 Limites en nombre : Un seul serveur (ou domaine) ne peut pas être Limites en nombre : Un seul serveur (ou domaine) ne peut pas être

autorisé à écrire plus de 20 cookies.

autorisé à écrire plus de 20 cookies.

Limites en taille : un cookie ne peut excéder 4 Ko. Limites en taille : un cookie ne peut excéder 4 Ko.

 Limites du poste client : Un poste client ne peut stocker plus de 300 Limites du poste client : Un poste client ne peut stocker plus de 300

cookies en tout.

cookies en tout.

 Où sont stockés les cookies Où sont stockés les cookies

En général, ils sont pour Netscape, dans le répertoire de l'utilisateur (si il y 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".

a des profils différents) sous le nom de "cookie.txt".

Microsoft Internet Explorer stocke les cookies dans des répertoires tels que Microsoft Internet Explorer stocke les cookies dans des répertoires tels que

"C:\WINDOWS\Cookies" ou encore "C:\WINDOWS\TEMP\Cookies".

(47)

Les Cookies

Les Cookies

(3)

(3)

Structure d'un cookie

Structure d'un cookie

Nom=Contenu; expires=expdate; path=Chemin; domain=NomDeDomaine; secure

 Nom=Contenu;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»

(48)

Les Cookies

Les Cookies

(4)

(4)

Expires= expdate;

Expires= expdate;

 Le mot réservé expires Le mot réservé expires suivi du signe "=suivi du signe "=" (égal). Derrière ce signe, " (égal). Derrière ce signe,

vous mettrez une date d'expiration représentant la date à laquelle le

vous mettrez une date d'expiration représentant la date à laquelle le

cookie sera supprimé du disque dur du client.

cookie sera supprimé du disque dur du client.  La date d’expiration doit être au format : La date d’expiration doit être au format :

Wdy, DD-Mon-YYYY HH:MM:SS GMT

Wdy, DD-Mon-YYYY HH:MM:SS GMT  Utiliser les fonctions de l'objet DateUtiliser les fonctions de l'objet Date

 Règle générale : 'indiquer un délai en nombre de jours (ou d'années) Règle générale : 'indiquer un délai en nombre de jours (ou d'années)

avant disparition du Cookie.

(49)

Les Cookies

Les Cookies

(5)

(5)

path=Chemin;path=Chemin;

 pathpath représente le chemin de la page qui a créé le cookie. représente le chemin de la page qui a créé le cookie.

domain=NomDeDomaine; domain=NomDeDomaine;

domaindomain représente le nom du domaine de cette même page représente le nom du domaine de cette même page

securesecure

securesecure prend les valeurs "true" ou "false" selon que le cookie doit prend les valeurs "true" ou "false" selon que le cookie doit

utiliser des protocoles HTTP simples (non sécurisés) ou HTTPS

utiliser des protocoles HTTP simples (non sécurisés) ou HTTPS

(sécurisés).

(sécurisés).

 Les arguments Les arguments path, , domain et et secure sont facultatifs. sont facultatifs.

 lorsque ces arguments sont omis, les valeurs par défaut sont lorsque ces arguments sont omis, les valeurs par défaut sont

prises.

prises.

(50)

Les Cookies

Les Cookies

(6)

(6)

Ecrire un cookieEcrire un cookie

Un cookie est une propriété de l'objet document (la page HTML chargée 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:

dans le navigateur) alors l’intruction d’écriture de cookie est:

– document.cookie = Nom + "=" + Contenu + ";

expires=" + expdate.toGMTString() ;

var

var NomNom = "MonCookie = "MonCookie" ; //" ; // nom du cookie nom du cookie var

var ContenuContenu = "Hé... Vous avez un cookie sur votre disque ! = "Hé... Vous avez un cookie sur votre disque !" ; //" ; // contenu du cookie contenu du cookie var

var expdateexpdate = new Date () = new Date () ; // crée un objet date indispensable ; // crée un objet date indispensable puis rajoutons lui 10 jours d'existence :

puis rajoutons lui 10 jours d'existence :

expdate

expdate.setTime (.setTime (expdateexpdate.getTime() + ( 10 .getTime() + ( 10 ** 24 24 * * 6060 * * 6060 * * 10001000)) ; )) ;

(51)

Les Cookies

Les Cookies

(7)

(7)

Lecture d'un cookie

Lecture d'un cookie

Accéder à la propriété cookie de l'objet document.Accéder à la propriété cookie de l'objet document.

Document.cookieDocument.cookie

Modification d'un cookie

Modification d'un cookie

Modifier le contenu de la variable ContenuModifier le contenu de la variable Contenu puis réécrire le cookie sur puis réécrire le cookie sur

le disque dur du client

le disque dur du client

var

var LesCookiesLesCookies ; //; // pour voir les cookies pour voir les cookies

LesCookies

LesCookies = document.cookie ; //= document.cookie ; // on met les cookies dans la variable LesCookies on met les cookies dans la variable LesCookies

Contenu = "Le cookie a été modifié..." ; // nouveau contenu

document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString(); // écriture sur le disque

(52)

Les Cookies

Les Cookies

(8)

(8)

Suppression d'un cookie

Suppression d'un cookie

PPositionner la date de péremption du cookie à une valeur inférieure à ositionner la date de péremption du cookie à une valeur inférieure à

celle du moment où on l'écrit sur le disque.

celle du moment où on l'écrit sur le disque.

//

// on enlève une seconde (ça suffit mais c'est nécessaire) on enlève une seconde (ça suffit mais c'est nécessaire)

expdate

expdate.setTime (.setTime (expdateexpdate.getTime() - (.getTime() - (1000)) ; 1000)) ;

// écriture sur le disque

// écriture sur le disque

document.cookie =

Références

Documents relatifs

Simplement, à la fin du chargement de la page (code HTML et code JavaScript), une image est dis­ ponible dans le cache sans accès vers le serveur pour

Il ne reste plus qu’à analyser la distribution des POS pour les mots les plus fréquents et celle des adjectifs, verbes et noms communs.. Préparation

Mais malgré la dotation à l’Égypte, par le budget saoudien, d’avions Rafale et de navires Mistral, en sus de l’aide financière annuelle des États-Unis, l’armée égyptienne

des théories axiomatisées qui ont toutes le même niveau de consistance, celui des mathématiques en général. Comme elles diffèrent les unes des autres, une seule

Cette dernière est illustrée, dans la troisième partie, par une brève analyse de Grand Central, film réalisé en 2013 par Rebecca Zlotowski, qui décrit les conditions de

- Norme ECMA 262-3 : ECMAScript, communément JavaScript 1.5, publiée en 1999 - Normalisation en cours pour lʼextension dʼECMAScript à lʼenvironnement XML. Normalisation = pérènité

Une fonction ou bien un code JavaScript peut être inséré comme valeur de l'argument exemple. Bien évidemment, il est plus intéressant d'utiliser une procédure, lorsque le code

[r]