Académique Documents
Professionnel Documents
Culture Documents
Introduction (1)
Javascript permet de dvelopper de vritables applications fonctionnant exclusivement dans le cadre d'Internet. Le Javascript est un langage de script simplifi orient objet dont la syntaxe est base sur celle du Java.
Javascript a t initialement labor par Netscape en association avec Sun Microsystem.
Plus tard, Microsoft dveloppera son propre langage Javascript officiellement connu sous le nom de JScript.
Introduction (2)
Contrairement un applet Java qui est un programme compil, les scripts crits en Javascript sont interprts
Le Java, reprsent par un ou plusieurs fichiers autonomes dont l'extension sera *.class ou *.jar, est invoqu par une balise HTML spcifique Le JavaScript est crit directement au sein du document HTML sous forme d'un script encadr par des balises HTML spciales.
Javascript est standardis par un comit spcialis, l'ECMA (European Computer Manufactures Association).
HTML et JavaScript
la page HTML devra TOUJOURS contenir les deux balises spcifiques et indispensables
<script language="JavaScript"> ............ </script>
Le code JavaScript s'insre le plus souvent dans la page HTML elle mme.
C'est la mthode la plus simple et la plus frquemment utilise par les dveloppeurs de sites Internet.
Le code s'excute automatiquement lors du chargement de la page HTML dans le navigateur en mme temps que le contenu de la page HTML s'affiche l'cran. Le code JavaScript est plac dans le corps mme de la page HTML, entre les balises <body> .......... Et ......... </body>
<html> <head> <title>..... </title> </head> <body> <script language="JavaScript"> alert(bonjour); </script> </body> </html>
Le code javascript est d'abord lu par le navigateur, stock en mmoire, pour ne s'excuter que sur demande, lors du dclenchement d un vnement. Le code JavaScript est plac dans le corps mme de la page HTML, entre les balises <head> .......... et ......... </head> Le code s'excutera seulement lors d'un vnement gnr par intervention de l'utilisateur. Il faut crire le code correspondant cet vnement dans le corps du document HTML.
<html> <head> <title> .......... </title> <script language="JavaScript"> function auRevoir () { alert( Au revoir);} </script> </head> <body onUnload=auRevoir();> Exccution diffre </body> </html>
On peut insrer du code JavaScript en faisant appel un module externe se trouvant nimporte quelle adresse (URI).
Les deux balises de Javascript doivent tre placs entre les Tags <body> et </body> dans le cas d'une excution directe ou entre les Tags <head> et </head> de la page HTML pour une excution diffre. Stock dans un fichier sur le serveur son adresse d'appel sous forme de TEXTE SIMPLE portant l'extension .txt ou .js Simplifie la maintenance des sites faisant appel des modules JavaScript communs plusieurs pages HTML. Inconvnient : l'appel au code externe gnre une requte supplmentaire vers le serveur, et encombre le rseau
3 types de boites de messages peuvent tre affichs en utilisant Javascript : Alerte, Confirmation et Invite
Mthode alert()
sert afficher lutilisateur des informations simples de type texte. Une fois que ce dernier a lu le message, il doit cliquer sur OK pour faire disparatre la bote
Mthode confirm()
Mthode prompt()
La mthode prompt() permet lutilisateur de taper son propre message en rponse la question pose
Dclaration et affectation
Si une valeur est affecte une variable sans que cette dernire ne //Dclaration et affectation de caractere soit dclare, alors Javascript la var caractere = ["a", "b", "c"]; dclare automatiquement.
Dclaration et affectation
La lecture d'une variable non dclare provoque une erreur Une variable correctement dclare mais dont aucune valeur n'est affecte, est indfinie (undefined). les variables peuvent tre globales ou locales. Une variable globale est dclare en dbut de script et est accessible n'importe quel endroit du programme. Une variable locale est dclare l'intrieur d'une fonction et n'est utilisable que dans la fonction elle-mme.
La porte
Les noms de variables ne peuvent contenir que des lettres, chiffres, ou le caractre "_" (underscore)
Mon_Prenom est un nom valide
Les mots rservs JavaScript ne peuvent tre utiliss comme noms de variable.
Le type dune variable dpend de la valeur stocke dans cette variable. Pas de dclaration de type.
String Number : 10^-308 >nombre < 10^308 Les nombres entiers les nombres dcimaux en virgule flottant 3 valeurs spciales : Positive Infinity ou +Infinity (valeur infini positive) Negative Infinity ou Infinity (valeur infinie ngative) Nan (Not a Number) habituellement gnre comme rsultat dune opration mathamatique incohrente
Boolean
deux valeurs littrales : true (vrai) et false (faux).
Valeurs spciales
Null : possde une seule valeur, null, qui signifie labsence e donnes dans une variable Undefined : possde une seule valeur, undifined. Une variable dont le contenu nest pas clair car elle na jamais stock de valeur, pas mme null est dite non dfinie (undifined).
La concatnation
Var chaine = bonjour + FI3/FCD1 ;
eval
Cette
... <SCRIPT LANGUAGE="JavaScript"> function evaluation() { document.formulaire.calcul.value=eval(document.formulaire.saisie.value); } </SCRIPT> ... <FORM NAME="formulaire"> Saisissez une expression mathmatique : <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> </FORM>...
isFinite
Dtermine si le parametre est un nombre fini. Renvoie false si ce n'est pas un nombre ou l'infini positif ou infini ngatif.
isFinite(240) //retourne true isFinite("Un nombre") //retourne false
isNaN
parseFloat
analyse
une chane de caractres et retourne un nombre dcimal. Si l'argument valu n'est pas un nombre, renvoie NaN (Not a Number).
parseInt
analyse
une chane de caractres et retourne un nombre entier de la base spcifie. La base peut prendre les valeurs 16 (hexadcimal) 10 (dcimal), 8 (octal), 2 (binaire).
var prix=30.75; var arrondi = parseInt(prix, 10); //retourne 30
Number
convertit
var jour = new Date("December 17, 1995 03:24:00");//converit la date en millisecondes alert (Number(jour));
String
convertit
jour = new Date(430054663215);//Convertit le nombre en date Mois jour, Annee etc. alert (String(jour));
Escape retourne la valeur hexadcimale partir d'une chane de caractre code en ISO-Latin-1.
Les objets de JavaScript, sont soit des entits pr dfinies du langage, soit crs par le programmeur.
Par exemple, le navigateur est un objet qui s'appelle "navigator". La fentre du navigateur se nomme "window" La page HTML est un autre objet, que l'on appelle "document". Un formulaire l'intrieur 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 ragir des "Evnements". Tous les navigateurs ne supportent pas les mmes objets Accs aux proprits dun objet
Loprateur New
L'oprateur new est utilis pour crer une nouvelle instance ou un nouveau type d'objet dfini par l'utilisateur ou de l'un des types d'objets prdfinis, Array, Boolean, Date, Function, Image, Number, Object, ou String. nouvel_objet = new type_objet(parametres)
texte = new String("Une chane de caractre");
Loprateur Typeof
L'oprateur
typeof renvoie une chane de caractres indiquant quel est le type de l'oprande.
var i = 1; typeof i; //retourne number var titre="Les raisins de la colre"; 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.* typeof Math; //retourne function NS 3.*, Opera 3.*
Proprit :
length
Mthodes :
anchor(
) : formate la chane avec la balise <A> nomme; b( ) : formate la chane avec la balise <B>; big( ) : formate la chane avec la balise <BIG>; charAt( ) : renvoie le caractre se trouvant une certaine position; charCodeAt( ) : renvoie le code du caractre se trouvant une certaine position; concat( ) : permet de concatner 2 chanes de caractres; fromCharCode( ) : renvoie le caractre associ au code; indexOf( ) : permet de trouver l'indice d'occurrence d'un caractre dans une chane;
) : formate la chane avec la balise <I>; lastIndexOf( ) : permet de trouver le dernier indice d'occurrence d'un caractre; link( ) : formate la chane avec la balise <A> pour permettre de faire un lien; slice( ) : retourne une portion de la chane; substr( ) : retourne une portion de la chane; substring( ) : retourne une portion de la chane; toLowerCase( ) : permet de passer toute la chane en minuscule; toUpperCase( ) : permet de passer toute la chane en majuscules;
L'objet Array
Proprit :
length
Mthodes :
concat(
) : permet de concatner 2 tableaux; join( ) : converti un tableau en chane de caractres; reverse( ) : inverse le classement des lmnts du tableau; slice( ) : retourne une section du tableau; sort( ) : permet le classement des lments du tableau;
Proprits :
E
: renvoie la valeur de la constante d'Euler (~2.718); LN2 : renvoie le logarithme nprien de 2 (~0.693); LN10 : renvoie le logarithme nprien de 10 (~2.302); LOG2E : renvoie le logarithme en base 2 de e (~1.442); LOG10E : renvoie le logarithme en base 10 de e (~0.434); PI : renvoie la valeur du nombre pi (~3.14159); SQRT1_2 : renvoie 1 sur racine carre de 2 (~0.707); SQRT2 : renvoie la racine carre de 2 (~1.414);
Mthodes :
abs(
), exp( ), log(), sin( ), cos( ), tan( ), asin( ), acos( ), atan( ), max( ), min( ), sqrt( ) sont les oprations mathmatiques habituelles; atan2( ) : retourne la valeur radian de l'angle entre l'axe des abscisses et un point; ceil( ) : retourne le plus petit entier suprieur un nombre; floor( ) : retourne le plus grand entier infrieur un nombre; pow( ) : retourne le rsultat d'un nombre mis une certaine puissance; random( ) : retourne un nombre alatoire entre 0 et 1; round( ) : arrondi un nombre l'entier le plus proche.
getFullYear(
), getYear( ), getMonth( ), getDay( ), getDate(), getHours( ), getMinutes( ), getSeconds( ), getMilliseconds( ): retournent respectivement l'anne complte, l'anne (2chiffres), le mois, le jour de la semaine, le jour du mois, l'heure, les minutes, les secondes et les millisecondes stocks dans l'objet Date; getUTCFullYear( ), getUTCYear( ), retournent respectivement l'anne complte, l'anne (2chiffres), stocks dans l'objet Date en temps universel; setFullYear( ), setYear( ), remplacent respectivement l'anne complte, l'anne (2chiffres), dans l'objet Date;
soit
des mthodes propres l'objet document, comme la mthode getElementById( ), qui permet de trouver l'lment en fonction de son identifiant (ID); soit des collections d'objets qui regroupent sous forme de tableaux Javascript tous les lments de type dtermin.
Mthodes :
blur( ) : enlve le focus de la fentre; close( ) : ferme la fentre; focus( ) : place le focus sur la fentre; moveBy( ) : dplace d'une distance; moveTo( ) : dplace la fentre vers un point spcifi; open( ) : ouvre une nouvelle fentre; print( ) : imprime le contenu de la fentre; resizeBy( ) : redimensionne d'un certain rapport; resizeTo( ) : redimensionne la fentre; setTimeout( ) : value une chane de caractre aprs un certain laps de temps.
Proprits :
applets : retourne la collection d'applets java prsente dans le document; cookie : permet de stocker un cookie; domain : indique le nom de domaine du serveur ayant apport le document; forms : retourne la collection de formulaires prsents dans le document; images : retourne la collection d'images prsentes dans le document; links : retourne la collection de liens prsents dans le document;
Mthodes :
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
Proprits
appName : application (Netscape, Internet Explorer) appVersion : numero de version. platform : systme dexploitation (Win32) plugins language mimeTypes JavaEnabled()
se produisent lors d'actions diverses sur les objets d'un document HTML.
onLoad; onClick onMouseover onMouseout ...
Evnement onLoad
Se
produit lorsque une page web est charge dans la fentre du navigateur la page (y compris les images quelle contient si leur chargement est prvu) doit avoir t charge pour quil ait lieu vnement peut tre associ une image seulement ; auquel cas, il se produit une fois son chargement termin
Toute
Cet
Evnement onClick
Se
produit lorsque lutilisateur clique sur un lment spcifique dans une page, comme un lien hypertexte, une image, un bouton, du texte, etc. lments sont capables de rpondre sparment cet vnement peut galement tre dclench lorsque lutilisateur clique nimporte o sur la page sil a t associ non pas un lment spcifique, mais llment body tout entier
Ces Il
vnement onMouseover
Analogue
onClick sauf quil suffit que lutilisateur place le pointeur de sa souris sur lun des lments prcits (lien hypertexte, image, bouton, texte, etc.) pour quil ait lieu linverse de onMouseover, cet vnement se produit lorsque le pointeur de la souris quitte la zone de slection dun lment.
vnement onMouseout
A
Pour pouvoir manipuler un objet en javaScript, il doit possder un nom Pour pouvoir distinguer les diffrents objets-lments dune page web, il suffit de leur donner un nom travers de lattribut NAME
<Table Name= tableau1 > <Table Name= tableau2 > <Form Name = formulaire1 > <Form Name = formulaire2 > <Textarea Name = texte1>
Dans le cas o lobjet serait unique alors pas besoin de nom pour dsigner cet objet
Exemple : le cas de BODY(une seul BODY par document), DOCUMENT (un seul DOCUMENT par fentre)
Pour adresser un objet, il ne suffit pas de donner son nom : il faut aussi prciser son chemin daccs dans larborescence de la structure
Si le nom de la fentre est omis, le navigateur utilisera par dfaut la fentre courante Dans le cas de cadres (frames), il est pertinent de donner le nom de la fentre Il est possible aussi domettre window.document : ladressage russi puisquil ny a quun seul objet document dans la fentre
Un "Cookie" est une chane de caractres qu'une page HTML (contenant du code JavaScript) peut crire un emplacement UNIQUE et bien dfini sur le disque dur du client.
Cette chane de caractres ne peut tre lue que par le seul serveur qui l'a gnre. Transmettre des valeurs (contenu de variables) d'une page HTML une autre.
Par exemple, crer 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 prsentes l'utilisateur en reprenant par exemple son nom en haut de chaque page.
On ne peut pas crire autant de cookies que l'on veut sur le poste de l'utilisateur (client dune page). Il y a des limites :
Limites en nombre : Un seul serveur (ou domaine) ne peut pas tre autoris crire plus de 20 cookies. Limites en taille : un cookie ne peut excder 4 Ko. Limites du poste client : Un poste client ne peut stocker plus de 300 cookies en tout.
En gnral, ils sont pour Netscape, dans le rpertoire de l'utilisateur (si il y a des profils diffrents) sous le nom de "cookie.txt". Microsoft Internet Explorer stocke les cookies dans des rpertoires tels que "C:\WINDOWS\Cookies" ou encore "C:\WINDOWS\TEMP\Cookies".
Sont deux variables suivies d'un ";" . Elles reprsentent l'en-tte du cookie. La variable Nom contient le nom donner au cookie. La variable Contenu contient le contenu du cookie Exemple ma_cookie= oui:visite
Expires= expdate;
Le mot rserv expires suivi du signe "=" (gal). Derrire ce signe, vous mettrez une date d'expiration reprsentant la date laquelle le cookie sera supprim du disque dur du client. La date dexpiration doit tre au format : Wdy, DD-Mon-YYYY HH:MM:SS GMT
lorsque ces arguments sont omis, les valeurs par dfaut sont prises. Pour secure, la valeur est "False" par dfaut.
Ecrire un cookie
Un cookie est une proprit de l'objet document (la page HTML charge dans le navigateur) alors lintruction dcriture de cookie est:
var Nom = "MonCookie" ; // nom du cookie var Contenu = "H... Vous avez un cookie sur votre disque !" ; // contenu du cookie var expdate = new Date () ; // cre un objet date indispensable puis rajoutons lui 10 jours d'existence : expdate.setTime (expdate.getTime() + ( 10 * 24 * 60 * 60 * 1000)) ; document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString() ;
Document.cookie
var LesCookies ; // pour voir les cookies LesCookies = document.cookie ; // on met les cookies dans la variable LesCookies
Modifier le contenu de la variable Contenu puis rcrire le cookie sur le disque dur du client
Contenu = "Le cookie a t modifi..." ; // nouveau contenu document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString() ; // criture sur le disque