Introduction Le language Javascript Intéraction avec le navigateur. Le JavaScript. Nicolas Faessel. Janvier 2010

Documents pareils
Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

TP 1. Prise en main du langage Python

Algorithmique et Programmation, IMA

Présentation du langage et premières fonctions

INF 321 : mémento de la syntaxe de Java

HTML, CSS, JS et CGI. Elanore Elessar Dimar

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

TP JAVASCRIPT OMI4 TP5 SRC

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Séance d ED n 5 : HTML et JavaScript

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Notions fondamentales du langage C# Version 1.0

Initiation à LabView : Les exemples d applications :

Projet de programmation (IK3) : TP n 1 Correction

Formation HTML / CSS. ar dionoea

Programmation Web. Madalina Croitoru IUT Montpellier

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

STAGE IREM 0- Premiers pas en Python

Initiation à la programmation en Python

Document Object Model (DOM)

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado


Découverte de Python

Introduction au langage C

DOM - Document Object Model

< Atelier 1 /> Démarrer une application web

Programmation Internet Cours 4

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Plan du cours. Historique du langage Nouveautés de Java 7

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Introduction à MATLAB R

Module : programmation site Web dynamique Naviguer entre les pages via site map

Langage Java. Classe de première SI

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Plateforme PAYZEN. Définition de Web-services

STID 2ème année : TP Web/PHP

Bases de programmation. Cours 5. Structurer les données

as Architecture des Systèmes d Information

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

L informatique en BCPST

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Application de lecture de carte SESAM-Vitale Jeebop

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Manuel d'installation

Module BD et sites WEB

TD3 - Facturation avec archivage automatisé

Calcul Formel et Numérique, Partie I

Formation : WEbMaster

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

ENVOI EN NOMBRE DE Mails PERSONNALISES

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Programmer en JAVA. par Tama

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Bernard Lecomte. Débuter avec HTML

TD3: tableaux avancées, première classe et chaînes

26 Centre de Sécurité et de

Maple: premiers calculs et premières applications

Programme Compte bancaire (code)

Access 2007 FF Access FR FR Base

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Extended communication server 4.1 : VoIP SIP service- Administration

EXCEL TUTORIEL 2012/2013

Mon aide mémoire traitement de texte (Microsoft Word)

Groupe Eyrolles, 2006, pour la présente édition, ISBN :

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Gestion de stock pour un magasin

Chapitre V. Les classes : Object, Vector, etc.

Initiation à la Programmation en Logique avec SISCtus Prolog

Solutions du chapitre 4

Utilisation d objets : String et ArrayList

Notes pour l utilisation d Expression Web

Informatique Générale

Chapitre 10 Arithmétique réelle

CAPTURE DES PROFESSIONNELS

Logiciel. Table de matières I Environnement requis...2

Mysql avec EasyPhp. 1 er mars 2006

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Luc Brun. Création de pages Web Dynamiques p.1/75

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Cours 7 : Utilisation de modules sous python

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Campagnes d ings v.1.6

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Logiciels de référencement

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Algorithmique et programmation : les bases (VBA) Corrigé

Manuel d installation de Business Objects Web Intelligence Rich Client.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Transcription:

Janvier 2010

Outline 1 2 3 Boîtes de dialogue Appel de fonction Javascript : les événements

Plan 1 2 3 Boîtes de dialogue Appel de fonction Javascript : les événements

Interactivité sur le Web HTML permet seulement des liens et des images réactives Tout autre action interactive (formulaire) comprend : envoi d une requête au serveur traitement sur le serveur envoi de la réponse au client interprétation par le client du résultat ==> temps de réponse LONG Solution : JavaScript

Motivations Exécution de code sur le poste du client pour : Améliorer l interactivité (temps de réponse plus court) Améliorer les débits sur le réseau (éviter des envois erronés) Proposer des pages dynamiques (animation, personnalisation...)

Caractéristiques JavaScript est un langage interprété multi-plateforme développé par Netscape (nom d originelivescript) avec différentes versions 1.0, 1.1, 1.2...

Le noyau JavaScript Au niveau du langage, on distingue : le noyau JavaScript (le coeur du langage) comportant des objets prédéfinis, des opérateurs, des structures... un ensemble d objets associés au navigateur (fenêtres, documents, images...) Il existe aussi la possibilité d exécuter du code JavaScript du coté du serveur (communications avec une BD, des fichiers...) mais l usage est plus restreint.

ECMAScript L organisme de standardisation ECMA (European Computer Manufacturers Association) a défini un standard ECMAScript basé sur JavaScript 1.1. Ce standard ECMA-262, repris par l ISO définit les caractéristiques du noyau du langage Aujourd hui, JavaScript 1.3 est conforme à cette norme ECMA-262 mais possède quelques extensions quelques différences au niveau du modèle objet du navigateur

Plan 1 2 3 Boîtes de dialogue Appel de fonction Javascript : les événements

Balise <script> Pour déclarer du code JavaScript dans les documents HTML, on le place entr les balises Ce code JavaScript peut être placé : dans l en-tête (ensemble de fonctions appelées à partir d évènements, d URL ou directement) dans le corps du document (pour un traitement synchrone lors de l interprétation du document) dans un fichier séparé

Exemple : Script en entête I <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <body> < /body> < /html> <head> <title> < /title> <script type="text/javascript"> <! f o n c t i o n bonjour ( ) { a l e r t ("Bonjour" ) ; } / / > < /script> < /head>

Exemple : Script dans un fichier séparé I <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <title> < /title> <script type="text/javascript" src="monfichier.js">< /script> < /head> <body> < /body> < /html>

Remarque : Certains navigateurs n interprètant pas JavaScript on peut mettre le code entre commentaires Commentaire html <! Ceci est un commentaire HTML > Commentaire JavaScript // Ceci est un commentaire JavaScript

Balise <script> (2) Exemple JavaScript en XHTML <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>mon document< /title> <script type="text/javascript"> / / <! [ CDATA[ a l e r t ("<Ceci est un script compatible avec XHTML>" ) ; / / ] ] > < /script> < /head> <body / > < /html> La balise <![CDATA[ ]]> permet d ignorer le contenu de cette balise au niveau du processeur xml http://www.w3.org/tr/xhtml1/

Le langage JavaScript Variables (faiblement typées) Opérateurs et instructions (ceux du langages C) Méthodes : Objets : globales (associées à tous les objets) fonctions définies par l utilisateur prédéfinis (String, Date, Math...) liés à l environnement (window, document...) Les Entrées/Sorties sont déléguées à l hébergeant Commentaires comme en langage C : // une seule ligne ou / pour plusieurs lignes /

Les variables Variable non typée. => peuvent changer de type en cours d execution ==> bien faire attention : de préférence, une variable doit garder le même type du début à la fin de l execution Déclarée à l aide du mot clé var

Les variables (2) Ne pas faire var i ; //declaration i = 2; //entier i = " bonjour " ; //chaine de caracteres i = true ; //booleen Ce qu il faut faire var i, chaine, bool ; //Declaration de 3 variables i = 2; chaine = " bonjour " ; bool = true ;

Affectations affectation simple : = nom=valeur affectation conditionnelle : var = (condition)? exp_alors : exp_sinon X = (a > b )? "plus": "moins" affectation avec opération : += -= =... Ex : X +=3; // equivaut a X=X+3; ATTENTION : distinguer l affectation (=) et la comparaison (==)

Types primitifs Nombre ( Number) Entier : décimal ou hexa (0x4F) ou octal (075) Réel (-2.3452E-12) Booléen (Boolean) : true ou false Chaîne de caractères (String) chaine "chaine" Les codes \t (tabulation) \n (à la ligne) \r (retour chariot) \b (backspace) \f (saut de page) sont reconnus

Conversions Typage faible Type String = type dominant JavaScript fait des conversions implicites selon les besoins Exemple : N=12; // N numerique T="34"; // T chaine de caracteres X=N+T; // X est la chaine de caracteres "1234" Il existe des types particuliers : Null (null), Undefined (undefined) et des nombres particuliers : Infinity, Infinity, NaN (Not a Number)

Opérateurs (1) Opérateurs de comparaison égalité : == (cette syntaxe est également utilisée pour comparer deux chaînes de caractères) différent à :!= (même remarque que ci-dessus) inférieur ou égal à : =< supérieur ou égal à : >= inférieur à : < supérieur à : > et logique : && ou logique : identique à : === non identique à :!== et bit à bit : & ou bit à bit :

Opérateurs Ceux du langage C arithmétiques : + / % in/décrémentation (pré/post indexée) : k++ ++k logiques : && (ET) (OU)! (NON) bit à bit : & (AND) (OR) ^(XOR) ~(Not) décalages : >> (à droite) << (à gauche) >>> (non signé) concaténation de chaînes : + ATTENTION : L opérateur + est l addition ou la concaténation

Instructions if (condition) { instructions } [ else {instructions } ] for (i=1 ; i<n ; i++) { i n s t r u c t i o n s } while ( c o n d i t i o n ) { i n s t r u c t i o n s } break Sortie d une boucle continue Itération suivante d une boucle var Déclaration d une variable

Fonctions / / Declaration de la fonction / / Nombre de parametres quelconque function nom(p1,p2... ) { instructions ; return code; } / / Appel de la fonction X = nom( 5, "jours" ) ; void : fonction retourne undefined

Méthodes globales escape("car" ) ; / / > code ASCII (\%XX) escape("é" ) ; / / ==> \%E9 unescape("\%exp" ) ; / / > caractere de code ASCII exp unescape("\%26" ) ; / / ==> & eval("exp" ) ; / / > evaluation d une expression et retour / / d un nombre eval("15"+"15" ) ; / / ==> 30 eval("t"+"["+2+"]" ) ; / / ==> valeur de T [ 2 ]

Méthodes globales (2) isnan(k ) ; / / retourne VRAI si k est un NaN c est a dire / / si k n est pas un nombre (Is Not A Number) isfinite(k ) ; / / retourne faux si k est un NaN, / / +infini ou infini et vrai sinon parseint("chn", b ) ; / / > entier chn dans la base b (0 ou NaN sinon) parsefloat("chn" ) ; / / > flottant chn (0 ou NaN sinon) parseint("15", 1 0 ) ; / / > 15 parseint("f", 1 6 ) ; / / > 15 parseint("15.99", 1 0 ) ; / / > 15 parsefloat("15,99e-12" ) ; / / > 1.599e 11

Objets en JavaScript Attention : nous n abordons pas ici la notion de programmation objet. Il existe plusieurs objet prédéfini en JavaScript. Un objet peut être vu comme un package contenant plusieurs fonctions, que l on accède par une notation pointée : Objet.function(); Par exemple, pour utiliser une fonction de conversion de chaine de caractère en caractère majuscule, on utilisera le code suivant : String.toUpperCase("Ma chaine de caractere");

Les Objets ECMAScript Un exemple de classes "prédéfinies" : Array (tableau), String (chaînes de caractères), Boolean (booléen), Number (nombre), Date Math (structures mathématiques).

String : chaînes de caractères Propriété : length Méthodes de manipulation de chaînes : String.indexOf("chaine","s/chn",pos), String.substring("chaine", debut,fin+1), String.charAt("chaine", n), String.lastIndexOf("chaine", "sous-chaine), String.toLowerCase("Chaine"), String.toUpperCase(), String.split(), S t r i n g. indexof ( " Bonjour ", " o " ) ; // --> 1 S t r i n g. l a s t I n d e x O f ( " Bonjour ", " o " ) ; // --> 4 S t r i n g. charat ( " Bonjour ", 3 ) ; // --> j S t r i n g. s u b s t r i n g ( " Bonjour ", 3, 7 ) ; // --> jour S t r i n g. touppercase ( " Bonjour " ) ; // --> BONJOUR

String : chaînes de caractères Ce que permet la notion d objet (que nous n aborderons pas) : var T = Bonjour ; T.indexOf ("o" ) ; / / > 1 T.lastIndexOf("o" ) ; / / > 4 T.charAt( 3 ) ; / / > j T.substring( 3, 7 ) ; / / > jour T.toUpperCase ( ) ; / / > BONJOUR

String : Méthodes "HTML" anchor, link : "Institut".anchor("INT"); ==> <A NAME="INT">Institut</A> "Institut".link("http://www.int-edu.eu"); ==> <A HREF="http://www.int-edu.eu">Institut </A> big, sub, sup, blink, bold, fixed, italics, small, strike ==> "Bonjour".big; <BIG>Bonjour </BIG> fontcolor, fontsize "Bonjour".fontsize(5); ==> <FONT SIZE=5>Bonjour</FONT>

Math : Structures mathématiques Propriétés : constantes mathématiques Math.E, Math.PI, Math.SQRT2, Math.SQRT1_2, Math.LN2, Math.LN10, Math.LOG2E, Math.LOG10E Méthodes : fonctions usuelles Trigonométriques : cos, sin, tg, acos, atan, asin, atan2 abs (valeur absolue) ceil (entier inf), floor (entier sup), round (entier + proche) exp, log, sqrt, pow(x,a) max (a,b), min (a,b) random > 0 < r < 1

Objet Array Tableau d éléments join : concatène tous les éléments en une chaîne de caractères séparés par une virgule ou un séparateur passé en argument reverse : transpose le tableau (1<->N 2<-> N-1...) sort : trie les éléments dans l ordre lexicographique ou selon la relation d ordre passée en argument

Plan Boîtes de dialogue Appel de fonction Javascript : les événements 1 2 3 Boîtes de dialogue Appel de fonction Javascript : les événements

Boîtes de dialogue Boîtes de dialogue Appel de fonction Javascript : les événements Parmi les objets JavaScript du navigateur, on distingue 3 objets de type window qui proposent des fenêtres prédéfinies pour faire des Entrées/Sorties : alert : fenêtre d affichage d un message avec un boutonde fermeture confirm : fenêtre de test avec 2 boutons pour valider ou annuler prompt : fênêtre de saisie d une information avec un champ de saisie, et 2 boutons pour valider ou annuler

Boîtes de dialogue (2) I Exemple Boîtes de dialogue Appel de fonction Javascript : les événements function t e s t _ a l e r t ( ) { var msg_alert =" Texte du message d a l e r t " ; a l e r t ( msg_alert ) ; } function test_ confirm ( ) { var msg_confirm =" Voulez vous continuer? " ; var res=confirm ( msg_confirm ) ; //confirm renvoi une valeur booleene (true ou false) i f ( res ) { a l e r t ( " vous avez c l i q u e sur OK " ) ; } else { a l e r t ( " Vous avez c l i q u e sur annuler " ) ; } }

Boîtes de dialogue (2) II Exemple Boîtes de dialogue Appel de fonction Javascript : les événements function test_prompt ( ) { var msg_prompt=" Texte de votre question " ; var t x t _ d e f a u t =" Texte de l a zone de s a i s i e par defaut " ; //prompt renvoi le texte saisi ou null (si click sur annuler) var res=prompt ( msg_prompt, t x t _ d e f a u t ) ; i f ( res!= n u l l ) { a l e r t ( " vous avez s a i s i : " + res ) ; } else { a l e r t ( " Vous avez c l i q u e sur annuler " ) ; } }

Boîtes de dialogue (3) I Exemple Boîtes de dialogue Appel de fonction Javascript : les événements <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml :lang="fr-fr"> <head> <title>< /title> <script type="text/javascript" src="dialogues.js">< /script> < /head> <body> <form> <input type="button" onclick="test_alert()" value="alert" / > <input type="button" onclick="test_confirm()" value="confirm" / > <input type="button" onclick="test_prompt()" value="prompt" / > < /form> < /body> < /html> Listing 1./Exemples/dialogues.html

Appeler une fonction JavaScript Boîtes de dialogue Appel de fonction Javascript : les événements Fonctions JavaScript peuvent être appelées depuis des évènements associés aux balises. Par exemple : le click de la souris sur un lien (pseudo-url) : <a href="javascript:alert( Coucou. )">Mon Lien</a> au chargement de la page : <body onload="mafonction()"> sur le click d un bouton : <input type="button"onclick="mafonction()"> en utilisant la propriété d événement d un élément : document.getelementbyid( exemple1 ).onclick = appel_de_fonction

Les événements JavaScript Boîtes de dialogue Appel de fonction Javascript : les événements Evénement onload onunload onbeforeunload onclick ondblclick onmousedown onmouseup onmousemove onkeydown onkeyup onkeypressed onblur onchange onsubmit onreset onselect onscroll onbeforeprint onafterprint Survient après le chargement de la page lors de la fermeture de la page juste avant la fermeture de la fenêtre lors d un clic sur le bouton gauche lors d un double-clic sur le bouton gauche quand on enfonce le bouton de la souris (gauche ou droit) quand on relâche le bouton de la souris lorsque la souris se déplace dans un objet du document quand on enfonce une touche du clavier quand on relâche la touche quand on enfonce une touche du clavier quand l élément perd le focus quand l élément perd le focus et que son contenu a changé juste avant l envoi d un formulaire lors de la réinitialisation du formulaire quand le contenu d un élément est sélectionné lors de l utilisation de la barre de défilement avant l impression (après le clic sur le bouton Ok de la fenêtre d impression) après l impression

Exemple d évènement Boîtes de dialogue Appel de fonction Javascript : les événements <html><head> <title>essai DHTML< /title> <script type="text/javascript"> <! f u n c t i o n I n i t ( ) { document. getelementbyid ( exemple1 ). onclick = miseengras ; document. getelementbyid ( exemple1 ). ondblclick = normal ; } f u n c t i o n miseengras (event) { t h i s.style. fontweight="bold" ; t h i s.style.color="red" ; } f u n c t i o n normal (event) { t h i s.style. fontweight="normal" ; t h i s.style.color="" ; } / / > < /script> < /head> <body onload="init();"> <p id="exemple1">exemple avec un éévnement souris. < / p> < /body>< /html>