1 Programmation Web : DOM / JavaScript. 2 DOM = Document Object Model  API (Application Programming Interface) pour la manipulation de HTML / XML  Définit.

Slides:



Advertisements
Présentations similaires
1 JavaScript V0 : Nauer. 2 JavaScript Quid ? Langage de programmation lié à HTML. Code JavaScript intégré aux pages HTML. Code interprété par le navigateur.
Advertisements

LE LANGAGE JAVASCRIPT LES FENETRES.
Conception de Site Webs dynamiques Cours 5
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
Interactivé: L'Action Script.
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Création de Pages Web Dynamiques
Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 (X)HTML / Pages Web Statiques.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Utilisation de l’outil Firebug
1 Javascript Merci à Emmanuel Nauer. 2 Javascript Quid ? Langage de programmation lié à HTML. Code Javascript intégré aux pages HTML. Code interprété
Formulaire HTML Introduction. Définition de formulaire.
Programmation Web : DOM / JavaScript
Introduction aux Web Services Partie 1. Technologies HTML-XML
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Manipulation des dates/heures en Javascript
CPI/BTS 2 Programmation Web Introduction au PHP
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Programmation multimédia 3
Le langage Javascript pour le web
Le langage Javascript pour le web et application au DHTML
Manipulation de formulaires en Javascript
IFT 6800 Atelier en Technologies d’information
Web dynamique PhP + MySQL AYARI Mejdi 2006
AJAX.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Animateur : Med HAIJOUBI
Javascript 1° PARTIE : LES BASES
TP n°3 Javascript Contrôle de formulaire
TP n°2 Javascript EVENEMENTS ET OBJETS
Évènement Petites fonction déjà toute faites Exemple : Construction onLoad (au chargement) = "ce qui doit se passer" onLoad s’exécute toujours dans le.
PHP & My SQL.
Le langage XHTML 420-S4W-GG Programmation Web Client
Programmation JavaScript cours inspiré du cours de R. Vivian.
Javascript 2° PARTIE : EVENEMENTS ET OBJETS
I- Introduction au langage II- Le formalisme de base III- Les Objets JavaScript IV- Les Variables V- Opérateurs prédéfinis VI- Les Entrées/Sorties VII-
PROGRAMMATION WEB FRONT-END.
JavaScript Nécessaire Web.
Introduction à JavaScript
JavaScript.
Les balises HTML et les objets JavaScript correspondants Objet document L'objet document est important dans la mesure ou il contient tous les objets du.
 Objet window, la fenêtre du navigateur
Technologies web chapitre III : Le langage JavaScript
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Dynamic HTML Regroupement de trois éléments : le HTML
 Formulaires HTML : traiter les entrées utilisateur
AJAX Jérôme CUTRONA 06:28:58 Programmation Web
Initiation au JavaScript
Function cas(uneNoteCCouCF){ laCellule.align="center"; uneNoteCCouCF=Number(uneNoteCCouCF); if(isNaN(uneNoteCCouCF)){ return "-"; } else { if(uneNoteCCouCF>=0){return.
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
Module 133 Développer des applications Web Introduction à PHP.
Le JavaScript.. Histoire Langage créé en 1995 par Brendan Eich pour la Netscape Communications Corporation. Est inspiré de nombreux langages, notamment.
HTML Création et mise en page de formulaire
M2202 – Algorithmique – T.BAUSER. Objectifs Utiliser Jquery pour : - modifier/ajouter/supprimer un élément/un attribut/une classe, - créer des animations,
HTML Rappels des fondamentaux
Principes et variables
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
SI28 – Ecriture interactive et multimédia Sylvain Slaton – Pierre Laporte.
DREAMWEAVER MX2 - Séance 2 Les calques Les comportements Les scénarios Les formulaires Les feuilles de style Les modèles Les cadres Mise en ligne Jérôme.
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
Les calques Les Template (modèles) Les Comportements Les scénarios Les formulaires Les CSS Le serveur Web de l’UTC Présentation.
FLASH Séance 2 Xiaoliang Liang Morgane Le Nan SI28 P05.
Flash – séance 2 Interactions avec Action Script.
SI28 : D REAMWEAVER 2 Audrey BUISSON – GSU05 Romain LASSALLE – GI05 1 SI28 – Ecriture interactive et multimedia.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

1 Programmation Web : DOM / JavaScript

2 DOM = Document Object Model  API (Application Programming Interface) pour la manipulation de HTML / XML  Définit la structure logique des documents  Définit la façon d’y accéder, de la manipuler  Créer des documents  Parcourir leur structure  Ajouter, effacer, modifier des éléments  Ajouter, effacer, modifier leur contenu

3 Qu’est-ce que le DOM ? Shady Grove Shady Grove Aeolian Aeolian Over the River, Charlie Over the River, Charlie Dorian Dorian

4 Qu’est-ce que le DOM ?  Représentation arborescente du document  Modèle objet (structure + méthodes)  Permet la manipulation du document  Une implémentation : JavaScript…  … Des implémentations : JavaScript IE JavaScript IE JavaScript Mozilla / Firefox JavaScript Mozilla / Firefox JavaScript Opera JavaScript Opera …

5 JavaScript : Principe  Langage de script objet  Syntaxe style C / C++ / Java  Sensible à la casse  N’est PAS du Java  Exécuté par le client Web  Peut être désactivé sur le client  Nombreux objets pour la manipulation HTML  Gestion des événements HTML  Rendre les pages dynamiques (HTML+CSS+JS)

6 JavaScript : Balise script <!--script // --> Masquer le script aux navigateurs non compatibles avec JavaScript

7 JavaScript : Exemple Ma première page Web Ma première page Web <!-- <!-- document.writeln("Salut !") ; document.writeln("Salut !") ; // --> // -->

8 Variables  Déclaration de variables facultative  Variables non typées à la déclaration var nom_variable ;  Typage dynamique à l’affectation  Types gérés: Nombres ( 10, 3.14 ) Nombres ( 10, 3.14 ) Booléens ( true, false ) Booléens ( true, false ) Chaînes ("Salut !", 'Salut !' ) Chaînes ("Salut !", 'Salut !' ) null null undefined undefined

9 Structures conditionnelles if (condition) { instructions ; } [ else { instructions ; } ]

10 Structures conditionnelles switch (expression) { case étiquette : case étiquette : instructions ; instructions ; break ; break ; case étiquette : case étiquette : instructions ; instructions ; break ; break ; default : default : instructions ; instructions ;}

11 Structures itératives while (condition) { instructions ; }do{ } while (condition) ;

12 Structures itératives for (instr ; condition ; instr) { instructions ; } for (variable in objet) { instructions ; }

13 Commentaires // Commentaire ligne /* Commentaire multi-lignes */

14 Fonctions  Valeur de retour non typée  Arguments non typés // Déclaration function ma_fonction(arguments) { instructions ; instructions ; return quelque_chose; // ou pas… return quelque_chose; // ou pas…} ma_fonction(12) ; // Appel

15 Objets prédéfinis  window alert(message) alert(message) // Message d’avertissement confirm(message) confirm(message) // Message de confirmation : retourne true ou false prompt(message, valeur_par_défaut) prompt(message, valeur_par_défaut) // Boîte de saisie : retourne la chaîne saisie

16 Objets prédéfinis  document write(message) write(message) // Ecrire dans le document writeln(message) writeln(message) // Ecrire dans le document (retour à la ligne)

17 Chaînes : Propriétés & Méthodes  Propriétés length length …  Méthodes charAt(index) charAt(index) charCodeAt(index) charCodeAt(index) concat(chaine2, chaine3, …) concat(chaine2, chaine3, …) fromCharCode(code1, code2, …) fromCharCode(code1, code2, …) indexOf(aiguille[, index]) indexOf(aiguille[, index]) lastIndexOf(aiguille[, index]) lastIndexOf(aiguille[, index]) match(expr_reg) match(expr_reg)

18 Chaînes : Méthodes  Méthodes replace(expr_reg, nouvelle_chaine) replace(expr_reg, nouvelle_chaine) search(expr_reg) search(expr_reg) slice(debut[, fin]) slice(debut[, fin]) split(separateur[, limite]) split(separateur[, limite]) substr(debut[, taille]) substr(debut[, taille]) substring(debut, fin) substring(debut, fin) toLowerCase() toLowerCase() toUpperCase() toUpperCase()  Opérateurs +

19 Chaînes : Exemples var s = "Bon anniversaire Benjamin" ; document.write(s.replace(/i/g, 'I')) ;  Bon annIversaIre BenjamIn document.write(s.search(/n{2}/i)) ;  5 5 5 5 document.write(s.slice(17)) ;  Benjamin document.write(s.split(" ")) ;  Bon,anniversaire,Benjamin document.write(s.substr(4, 12)) ;  anniversaire document.write(s.substring(4, 16)) ;  anniversaire document.write(s.toUpperCase()+s.toLowerCase()) ;  BON ANNIVERSAIRE BENJAMINbon anniversaire benjamin

20 Objet Math  Propriétés E, LN10, LN2, LOG10E, LOG2E, PI, SQRT1_2, SQRT2 E, LN10, LN2, LOG10E, LOG2E, PI, SQRT1_2, SQRT2  Méthodes abs(val) abs(val) acos(val), cos(val), … acos(val), cos(val), … exp(val), log(val) exp(val), log(val) floor(val), round(val), ceil(val) floor(val), round(val), ceil(val) max(val1, val2), min(val1, val2) max(val1, val2), min(val1, val2) pow(val, puiss), sqrt(val) pow(val, puiss), sqrt(val) random() // 0  1 random() // 0  1

21 Tableaux  Objet Array  Déclaration var tab1 = new Array(taille) ; var tab2 = new Array(1, "a", 9, …) ; index  …  Utilisation window.alert(tab2[0]) ; // 1 tab2[2] = 6 // 6 remplace 9  Accroissement automatique de la taille var tab1 = new Array(2) ; tab1[200] = 5 ;

22 Tableaux  Parcours var tab2 = new Array(1, "a", 9) ; tab2[200] = 12 ; for (i in tab2) window.alert("tab2[" + i + "] = " + tab2[i]) ; // tab2[0] = 1 // tab2[1] = a // tab2[2] = 9 // tab2[200] = 12

23 Tableaux : Propriétés & Méthodes  Propriétés length length …  Méthodes concat(tab2, tab3, …) concat(tab2, tab3, …) join(sépar) join(sépar) pop() pop() push(val1, val2, …) push(val1, val2, …) shift() shift() unshift(val1, val2, …) unshift(val1, val2, …) slice(début[, fin]) slice(début[, fin])

24 Contrôle de formulaires  Vérifier la cohérence de la saisie  Contrôles sur le client  Évite les transmissions client / serveur  Contrôles possibles: Présence de valeur Présence de valeur Numérique / Chaîne Numérique / Chaîne Expressions régulières Expressions régulières  Événement onSubmit

25 Contrôle de formulaires Contrôle Contrôle function verif() { if (document.formu.txt.value != '') return window.confirm('Envoyer ?') ; return false ; }

26 Formulaires : Propriétés & Méthodes  Propriétés action action elements elements encoding encoding length length method method name name target target  Méthodes reset() reset() submit() submit()

27 Objets commandes de formulaires  Text  Textarea  Hidden  Password  CheckBox  Radio (/!\ tableau de /!\)  Submit / Reset  Select  Option  FileUpload

28 Formulaires : Exemple ? ? Un Un Deux Deux oui oui non non OK OK

29 Formulaires : Exemple function verif(f) { window.alert(f.texte.value) ; window.alert(f.texte.value) ; window.alert(f.sel.selectedIndex) ; window.alert(f.sel.selectedIndex) ; window.alert(f.sel[f.sel.selectedIndex].text) ; window.alert(f.sel[f.sel.selectedIndex].text) ; window.alert(f.sel[f.sel.selectedIndex].value) ; window.alert(f.sel[f.sel.selectedIndex].value) ; window.alert(f.rad[0].checked) ; window.alert(f.rad[0].checked) ; window.alert(f.chk.checked) ; window.alert(f.chk.checked) ; return false ; return false ;}

Dates : Propriétés & Méthodes  Méthodes Constructeur Constructeur getDay(), attention de 0 (dimanche) à 6 (samedi)… getDay(), attention de 0 (dimanche) à 6 (samedi)… getDate() / setDate() getDate() / setDate() getMonth() / setMonth(), attention de 0 à 11… getMonth() / setMonth(), attention de 0 à 11… getHours()/ setHours() getHours()/ setHours() getMinutes() / setMinutes() getMinutes() / setMinutes() getTime() / setTime() getTime() / setTime() getYear() / setYear() / getFullYear() / setFullYear() getYear() / setYear() / getFullYear() / setFullYear() parse() parse() 30

Dates : Exemples var today = new Date() document.write(today) ; var birthday = new Date("December 17, :24:00") document.write(birthday) ; birthday = new Date(95,11,17) document.write(birthday) ; birthday = new Date(95,11,17,3,24,0) document.write(birthday) ; document.write(birthday.getDay()) ; document.write(birthday.getDate()) ; birthday.setDate(25) ; document.write(birthday) ; 31

32 Images : Propriétés & Méthodes  Propriétés complete complete width width height height name name src src …  Méthodes constructeur constructeur  Image()  Image(largeur, hauteur)

33 Images: Exemples // Une image rouge = new Image(100, 100) ; rouge.src = 'rouge.gif' ; // Préchargement // Une autre image vert = new Image(100, 100) ; vert.src = 'vert.gif' ; // Préchargement // Modification de la 13e image de la page Web document.images[12].src = rouge.src ; // Modification de la 15e image de la page Web document.images[14].src = rouge.src ;

Relations entre code HTML et DOM  Deux visions, normalement concordantes : Le code HTML produit par le concepteur Le code HTML produit par le concepteur L’interprétation qui en faite par le navigateur L’interprétation qui en faite par le navigateur  Discordances possibles : Erreurs dans le code (code non valide) Erreurs dans le code (code non valide) Balises non supportées (HTML 5, par exemple) Balises non supportées (HTML 5, par exemple) Modifications de la page par JavaScript Modifications de la page par JavaScript  Comment explorer l’état réel de l’interprétation du code HTML / JavaScript par la navigateur ? 34

Firefox : Firebug  Module complémentaire de Firefox   Principales fonctionnalités : Édition Édition Débogage Débogage Modification Modification HTML HTML CSS CSS JavaScript JavaScript HTTP HTTP  C’est l’outil indispensable du développeur Web 35

Firefox : Firebug 36

Relations entre code HTML et DOM 37

38

Solutions pour modifier le DOM  innerHTML Construire une chaîne de caractères contenant du code HTML Construire une chaîne de caractères contenant du code HTML Affecter cette chaîne de caractères à l’attribut innerHTML d’un élément de la page Affecter cette chaîne de caractères à l’attribut innerHTML d’un élément de la page Le navigateur interprète le contenu de la chaîne de caractères affectée pour modifier la structure du document Le navigateur interprète le contenu de la chaîne de caractères affectée pour modifier la structure du document  DOM « pur » Construire de nouveaux éléments logiques du document avec des méthodes JS Construire de nouveaux éléments logiques du document avec des méthodes JS Construire les liens de parenté entre ces éléments Construire les liens de parenté entre ces éléments 39

innerHTML : exemple  Identifier un élément HTML  Identifier un élément HTML  Accéder à un élément e = document.getElementById("un_id");  Construire une chaîne contenant du HTML s = "Voici un texte ";  Modifier le contenu de l’élément e.innerHTML = s;  Interprétation « automatique » par le navigateur du nouveau contenu pour modifier le document 40

DOM « pur » : exemple  Identifier un élément HTML  Identifier un élément HTML  Accéder à un élément e = document.getElementById("un_id");  Créer un nœud de type « texte » t1 = document.createTextNode('Voici '); t2 = document.createTextNode('un texte');  Créer un nouveau nœud de type « balise » b = document.createElement('b');  Construire des liens de parenté e.appendChild(t1); b.appendChild(t2); e.appendChild(b); 41 divid="un_id" b Voici un texte

42 Gestion des événements  Interactions HTML / JavaScript  Possibilité d'associer du code JavaScript à certains événements dans la page Web  Evénements OnMouseOver OnMouseOver OnMouseOut OnMouseOut OnClick OnClick OnKeyDown OnKeyDown OnFocus OnFocus OnBlur OnBlur …