Technologies de l Internet. Partie 5 : DOM, JavaScript Iulian Ober iulian.ober@irit.fr



Documents pareils
Document Object Model (DOM)

TP JAVASCRIPT OMI4 TP5 SRC

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Programmation Web. Madalina Croitoru IUT Montpellier

DOM - Document Object Model

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

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

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

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

L'API DOM : Document Object Model

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

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

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

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

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

Présentation du Framework BootstrapTwitter

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

Formation : WEbMaster

Le stockage local de données en HTML5

HTML. Notions générales

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Introduction aux concepts d ez Publish

Java 7 Les fondamentaux du langage Java

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

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

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Séance d ED n 5 : HTML et JavaScript

Les services usuels de l Internet

Master d Informatique Corrigé du partiel novembre 2010

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

Module BD et sites WEB

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

RESPONSIVE WEB DESIGN

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Diffuser un contenu sur Internet : notions de base... 13

ECLIPSE ET PDT (Php development tools)

Gestion d identités PSL Exploitation IdP Authentic

Sessions en ligne - QuestionPoint

Démonstration de la mise en cache via HTML 5 sur iphone

Dojo Toolkit. Créer des applications AJAX/RIA en JavaScript. Thomas Corbière

Gestion des documents avec ALFRESCO

as Architecture des Systèmes d Information

PHP 5.4 Développez un site web dynamique et interactif

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

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

Ajax, RIA et HTML Prise en charge d Ajax

AWS avancé. Surveiller votre utilisation d EC2

Projet de programmation (IK3) : TP n 1 Correction

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

Optimiser pour les appareils mobiles

Création d un formulaire de contact Procédure

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

GUIDE D UTILISATION DE LA PLATEFORME D ENVOI DE COURRIELS

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

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

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

Bernard Lecomte. Débuter avec HTML

creer votre site internet en html/css

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Tutoriel de formation SurveyMonkey

Attaques de type. Brandon Petty

Silfid : Agence de création de site internet, formations et Conseils Retour sommaire

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Création de site Internet avec Jimdo

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Formation HTML / CSS. ar dionoea

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

Mozilla Firefox 3.5. Google Chrome 3.0 LES NAVIGATEURS WEB. (pour Windows) Opéra 10. Internet Explorer 8. Safari 4.0

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Application de lecture de carte SESAM-Vitale Jeebop

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Guide de réalisation d une campagne marketing

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Formulaire pour envoyer un mail

Présentation du langage et premières fonctions

Formation Webmaster : Création de site Web Initiation + Approfondissement

HTML5 et CSS3 pour des sites Responsive Web Design

PARAMETRER INTERNET EXPLORER 9

Publier dans la Base Documentaire

Drupal Développeur. Theming et développement pour Drupal. Une formation Formateur : Fabien Crépin. Drupal Développeur.

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

CREATION d UN SITE WEB (INTRODUCTION)

Programmation Internet Cours 4

Initiation à html et à la création d'un site web

Un jour, une question Réponse à une problématique issue de la liste GTA *

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

{less} Guide de démarrage

Comment accéder à d Internet Explorer

Livre Blanc WebSphere Transcoding Publisher

Attaques applicatives

Démarrer avec Ajax et le php: exemple d'application

Transcription:

Technologies de l Internet Partie 5 : DOM, JavaScript Iulian Ober iulian.ober@irit.fr

DHTML : Introduction Objectif : créer des pages dynamiques objets qui apparaissent/disparaissent/changent (ex. menus) validation de données de formulaires gestion des "cookies" DHTML n'est pas un langage / norme mais une combinaison de technologies: (X)HTML, CSS, DOM, JavaScript, 2

Modèle DOM représentation des éléments d'une page HTML sous forme d'objets, avec propriétés, méthodes, page HTML arbre DOM norme W3C, indépendante du navigateur modifier les objets dynamiquement permet de modifier l'aspect de la page besoin d'un langage ( DOM) exécuté par le client (navigateur) pour modifier les objets (ex. JavaScript) 3

Arbre DOM initialement construit par le navigateur par analyse syntaxique de la page HTML doc html head body title link div CDATA rel h p img 4

Types d'objets : niveau générique g (XML) Node interface générique pour tous les types de nœuds de l'arbre (ex. Document, Element, Attribut, CDATA, ) NodeList liste de nœuds (ex. node.childnodes) NamedNodeMap dictionnaire de nœuds en accès par le nom (ex. node.attributes, node.) 5

Types d'objets : niveau générique g (XML) Node Document DocumentType Element Attr CDATA 6

Navigation dans l'arbre Document Element getelementbyid(id) Element getdocumentelement() NodeList getelementsbytagname(tagname) Node Node getfirstchild() Node getnextsibling() Document getownerdocument() Element Attr getattributenode(name) NodeList getelementsbytagname(tagname) 7

Exemple <html> <head> <script type="text/javascript"> i = document.getelementbyid("myheader"); j = document.firstchild.lastchild; // devrait être : j = document.getfirstchild().getfirstchild().getnextsibling(); </script> </head> <body> <h1 id="myheader" >This is a header</h1> </body> </html> 8

DOM HTML Un type d'objet pour chaque élément HTML body form table, tablerow, tablecell paragraph anchor image Propriétés attributs de l'élément HTML ex. image : align, border, ismap, src, 9

DOM HTML styles chaque objet Element a un objet Style associé qui contient l'affectation de style individuelle spécifique à l'objet on peut changer les propriétés de style: document.getelementbyid("id").style.property="value" property : propriété CSS ex. CSS background-image DOM backgroundimage 10

Exemple <html> <head> <script type="text/javascript"> function f() { i = document.getelementbyid("myheader"); i.style.backgroundcolor = "red"; link = document.createelement("a"); linktext = document.createtextnode(" edit"); link.setattribute("href", "url.html"); link.appendchild(linktext); i.appendchild(ilink); } </script> </head> <body> <h1 id="myheader" onclick="f()">this is a header</h1> </body> </html> 11

JavaScript - introduction langage de programmation pour les pages HTML N.B. JavaScript Java! interprété par le navigateur exemples d'utilisation : changer le texte d'une page réagir à des événements (chargement de la page, clicks, déplacement de souris, ) valider les données d'un formulaire détecter le type de navigateur du visiteur créer des cookies, 12

Où mettre les scripts dans les entêtes: <head> <script type="text/javascript">... </script> </head> interprété au chargement de la page en principe, définition de fonctions dans un fichier séparé: <script src="xxx.js" type="text/javascript"></script> dans le corps: <body> <script type="text/javascript"> document.write("<a href=\"url.html\">a link</a>"); </script> </body> peut générer du contenu 13

Variables créées à l'affectation: var str = "exemple" ou str = "exemple" nom sensitif à la case portée locales à une fonction globales, visibles dans toutes les fonctions de la page pas de définition de type ( objet) 14

Instructions de contrôle if (time < 10) { document.write("good morning!") } else { document.write("good day!") } switch (theday) { case 0: document.write("it's finally Sunday") break default: document.write("looking forward ") } 15

Instructions de contrôle for (var=0;var<=5;var=var+1) { // code if (var=3) break; } while (var<=endvalue) { // code } 16

Tableaux, plus d'instructions type Array : var semaine=new Array() semaine[0]="dimanche" semaine[1]="lundi" semaine[2]="mardi" instruction for..in : for (j in semaine) { document.write(j+"<br/>"); } 17

Opérateurs les mêmes qu'en C/C++/Java! +,-,*,/,%... ++, -- =, +=, *=, %=, ==,=== &&,,! _?_:_ 18

Objets JavaScript est orienté objet types prédéfinis nouveaux (utilisateur) accès aux propriétés : exemple (pour txt="toto"): txt.length accès aux méthodes : exemple document.write( txt.touppercase()); 19

Types d'objets prédéfinis String +, indexof(), match(), bold(), small() Date var mydate=new Date() // initialisé à la date courante getday(), getmonth(), setmonth() Boolean Math min(x,y), abs(x), log(x), 20

Fonctions function prod(a,b) { alert("calcul du produit") x=a*b return x } 21

Types utilisateur Définition function getarea(){ return (this.radius*this.radius*3.14); } Utilisation var bigcircle = new Circle(100); alert(bigcircle.getarea()); function Circle(radius){ this.radius = radius; this.getarea = getarea; } Définition alternative (sans type) var person = new Object() person.firstname="john" person.lastname="doe" 22

Variables prédéfinies relatives au navigateur Window propriétés & méthodes de la fenêtre de navigation name, status, location, closed, alert(), close(), print(), scrollby(), resizeby(), objet par défaut pour les appels aux fonctions function f() { alert("message1"); window.alert("message2"); } f() window.f() // appel à f() // idem 23

Variables prédéfinies relatives au navigateur Location propriétés de l'url courent hash, host, port, protocol, search reload(), replace() Exemple: saut à une ancre (a1) de la même page function jumpnear() { location.hash="a1" } Exemple: chargement d'une autre page function jumpfar() { location = "http://www.w3schools.com" // ou: location.replace("http://www.w3schools.com") } 24

Variables prédéfinies relatives au navigateur Navigator propriétés & méthodes du navigateur en général appname, appversion, userlanguage, useragent, Exemple: function detectbrowser() { var browser=navigator.appname var b_version=navigator.appversion var version=parsefloat(b_version) if ((browser=="netscape" browser=="microsoft Internet Explorer") && (version>=4)) { alert("your browser is good enough!") } else { alert("it's time to upgrade your browser!") } } 25

Variables prédéfinies relatives au navigateur Screen propriétés de l'écran availheight, availwidth, colordepth, History manipuler l'historique length, back(), forward(), go() Exemple: function precedente() { history.back(); // ou : history.go(-1) } 26

JavaScript & DOM Version "simplifiée" de DOM : certains méthodes de navigation ne sont pas disponibles (getnextsibling()) d'autres sont renommées et/ou transformées en propriétés (firstchild au lieu de getfirstchild()) création de "raccourcis" document.i1 désigne l'élément qui a id="i1" (pour certains types d'éléments seulement!) table.cells[] donne les cellules d'un tableau 27

Types prédéfinis DOM HTML Un type d'objet pour chaque élément HTML body form table, tablerow, tablecell paragraph anchor image Propriétés attributs de l'élément HTML ex. image : align, border, ismap, src, 28

Événements provoqués par des actions de l'utilisateur sur certains éléments de la page HTML chargement / fermeture de la page (onload, onunload) click souris, passage de la souris sur un élément (onclick, onmouseover, onmouseout ) appui d'une touche (onkeydown, onkeyup ) sélection de texte (onselect) envoi / r.a.z. d'un formulaire (onsubmit, onreset) on peut associer des actions JavaScript à l'événement modèle : <élément-html onevenement="actionjs "> </élément-html> toutes les combinaisons élément-événement ne sont pas possibles! 29

Exemples d'événements chargement de la page <body onload="validernavigateur()"> changement d'un champ de texte <input type="text" id="myid" onchange="transform(this.id)"/> passage de la souris <div id="myid" onmouseover="emphasize(this.id)" onmouseout=unemphasize(this.id) > </div> 30

Exemples JavaScript Créer un lien sans utiliser <a>: <element-html onclick="location.replace(newurl)"> </element-html > 31

Exemples JavaScript Mise à jour périodique d'un horloge: <script type="text/javascript"> function starttime() { var today=new Date() var h=today.gethours() var m=add0(today.getminutes()) var s=add0(today.getseconds()) document.getelementbyid('txt').innerhtml=h+":"+m+":"+s t=settimeout('starttime()',500) } </script> <body onload="starttime()"> <div id="txt"></div> 32

Exemples JavaScript Attributs des événements: coordonnés de la souris, bouton appuyé, <script type="text/javascript"> function show_coords(e) { x=e.clientx y=e.clienty alert("x coords: " + x + ", Y coords: " + y) alert("bouton: " + e.button) alert("élément: " + e.target.innerhtml) } </script> <body onmousedown="show_coords(event)"> 33

Exemples JavaScript Image dynamique <script type="text/javascript"> function changesrc() { document.img0.src="hackanm.gif" } </script> <img id="img0" src="compman.gif" alt="image" /> 34