"Objets" en JavaScript

Documents pareils
Document Object Model (DOM)

TP JAVASCRIPT OMI4 TP5 SRC

Module BD et sites WEB

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

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

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

Séance d ED n 5 : HTML et JavaScript

Formulaire pour envoyer un mail

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

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

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

Attaques de type. Brandon Petty

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Google Webmaster Tools

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Formation : WEbMaster

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

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

Par KENFACK Patrick MIF30 19 Mai 2009

Initiation aux techniques du Web. Cours L2 sciences cognitives séance 2 Charif HAYDAR: alchiekc@loria.fr

Présentation du Framework BootstrapTwitter

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

INTRODUCTION AU CMS MODX

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

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

Tutoriel : Feuille de style externe

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

Peut être utilisée à l intérieur du site où se trouve la liste de référence.

TD HTML AVEC CORRECTION

Chapitre 1. Prise en main

Programmation Web. Madalina Croitoru IUT Montpellier

Attaques applicatives

Introduction à Expression Web 2

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

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

DOM - Document Object Model

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

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

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

Formation VBA 3 Interagir

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

ORACLE TUNING PACK 11G

Bases de données et Interfaçage Web

Introduction à JDBC. Accès aux bases de données en Java

guide d utilisation de showtime

Chapitre I Notions de base et outils de travail

RESPONSIVE DESIGN : Comment offrir à vos sites une adaptabilité parfaite?

cbox VOS FICHIERS DEVIENNENT MOBILES! INTERFACE WEB MANUEL D UTILISATION

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

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

CREATION d UN SITE WEB (INTRODUCTION)

SYSTÈMES D INFORMATIONS

Corrigé de l'atelier pratique du module 5 : Analyse de SQL Server

Introduction aux concepts d ez Publish

Formulaires et Compteurs

Livre Blanc WebSphere Transcoding Publisher

Optimiser les s marketing Les points essentiels

NAMEBAY PRO. votre site de revente de noms de domaine en marque blanche. Documentation technique

Manuel utilisateur. des. listes de diffusion. Sympa. l'université Lille 3

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

Sauvegarde des données du scribe sur disque USB

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

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

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

HTML5 et CSS3 pour des sites Responsive Web Design

Activités HTML. Code: act-html

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Comment créer et utiliser une fonction

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

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

Pack Fifty+ Normes Techniques 2013

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

{less} Guide de démarrage

7.0 Guide de la solution Portable sans fil

Création de formulaires interactifs

HTML/CSS - Travaux Pratiques 2

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

Mise en œuvre des serveurs d application

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Architectures web/bases de données

cbox VOS FICHIERS DEVIENNENT MOBILES! POUR ORDINATEURS DE BUREAU ET PORTABLES WINDOWS ÉDITION PROFESSIONNELLE MANUEL D UTILISATION

Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Le stockage local de données en HTML5

Connexion à SQL server

Formateur : Jackie DAÖN

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

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

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)

Sage CRM. Sage CRM 7.3 Guide du portable

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

BANQUES DE DONNÉES PÉDAGOGIQUES

Bases de Données et Internet

Transcription:

"Objets" en JavaScript Avec les objets COM de Visual Basic et les (vrais) objets Java, encore une autre notion d'objet informatique... Les objets de Javascript sont en fait des "tableaux associatifs" (c-à-d. des tableaux indexés par des chaînes), avec une une syntaxe pointée (y compris l'instruction with, absente en Java) pour les utiliser et une primitive new pour les créer. Comme les "vrais" objets ils ont des propriétés (champs = données) et des comportements (méthodes = procédures) propriétés et comportements sont traités de la même façon car en Javascript les fonctions sont des données! Mais il n'y a ni classes, ni héritage... Objets Constantine 2005 J-F. Perrot 1

"Objets" prédéfinis en JavaScript La notation pointée permet de manipuler aisément une grande quantité d'objets dont le type est prédéfini : String, Date, etc. Dans le jargon (le "métalangage") employé pour parler de JavaScript, on dit "l'objet String", " l'objet Date", etc. (et même de "l'objet Math"!!!). Il vaudrait certes mieux parler de classes, mais il n'y a pas de classes en JavaScript... On préfère donc dire "n'importe quoi"! Exemple : les chaînes de caractères sont des "objets" "abc".length --> 3 // length est une "propriété" "abc".toupper() --> "ABC" // toupper est une "méthode" "abc".toupper().length --> 3 Objets Constantine 2005 J-F. Perrot 2

<html> <head> <title> Essai de date </title> </head> <body> <p>debut</p> <p> <script type="text/javascript"> var aujourdhui = new Date(); var lequantieme = aujourdhui.getdate(); var lejourdelasemaine = aujourdhui.getday(); var lemois = aujourdhui.getmonth(); var lannee = aujourdhui.getfullyear(); var lheure = aujourdhui.gethours(); var laminute = aujourdhui.getminutes(); var laseconde = aujourdhui.getseconds(); Les Dates en JavaScript date.html document.write("<h3> Nous sommes le jour : " + lequantieme); document.write(" du mois : " + lemois); document.write(" de l\'année : " + lannee + ".<br /> />"); document.write("ce jour est un : " + lejourdelasemaine + ".<br /> />"); document.write("il est : " + lheure + " heures "); document.write(laminute + " minutes " + laseconde + " secondes </h3>"); document.write("<h1>bonne Année, Heureux Siècle, Excellent _ Millénaire </h1>"); </script> </p><p>fin</p> </body></html> Objets Constantine 2005 J-F. Perrot 3

Une Date particulière Objets Constantine 2005 J-F. Perrot 4

Constantes & fonctions "mathématiques" Comme en Java, un certain nombr />e de constantes (p.ex. PI) et de fonctions à caractère "mathématique" sont regroupées en un "module" appelé Math. Par analogie avec Java, on emploie la notation pointée " Math.xxx" pour les désigner : Math.abs(-5) --> 5 ; Math.max(5, 7) --> 7 ; Math.PI --> 3.1416... ; Math.random() -->??? Puisqu'il n'y a pas de classes en JavaScript, on ne peut pas parler comme en Java de la classe Math et de ses attributs et méthodes de classe (alias static members). On est donc amené pour expliquer cette notation à proférer une monstruosité : the Math Object... que je préfère ne pas traduire en français! Objets Constantine 2005 J-F. Perrot 5

Objets "fenêtres" vs. objets "documents" JavaScript distingue dans le fonctionnement d'une page ce qui concerne son cadre (la fenêtre : dimensions, position, bordures, affichage de différents attributs, outils et autres) ce qui concerne son contenu (le document : ce qui est affiché dans la page). Ces deux ordres de préoccupations sont pris en compte par deux genres d'objets : les fenêtres (Window) et les Documents. La difficulté est de savoir exactement à qui on doit s'adresser pour réaliser telle ou telle tâche... Objets Constantine 2005 J-F. Perrot 6

La fenêtre comme "objet fondamental" (1) L'espace des noms L'unité fondamentale dans le modèle-objet de JavaScript est la fenêtre du navigateur, représentée par un "objet Window". (1) Toutes les entités JavaScript lui appartiennent (on dit qu'il définit l'espace des noms - name space) Toutes les fonctions (standard comme alert, confirm, etc. ou définies par l'utilisateur) sont en fait des méthodes de l'objet Window où elles sont déclarées. Toutes les variables globales sont en fait des propriétés de l'objet Window où elles sont déclarées. Il s'ensuit que deux fonctions ou deux variables globales différentes pourront porter le même nom, à condition d'être déclarées dans des fenêtres différentes. Objets Constantine 2005 J-F. Perrot 7

La fenêtre comme "objet fondamental" (2) La hiérarchie de composition (2) La fenêtre est la racine de l'arbre d'objets représentant la page : p. ex. elle détient comme propriété l'objet document... esquisse de cet arbre : La fenêtre Window navigator history location document forms[ ] anchors[ ] links[ ] images[ ] applets[ ] elements[ ] Button Checkbox Hidden Password Radio Reset Select Submit Text textarea options[ ] Pour chaque objet o dans la page, il y a un chemin unique de la fenêtre à o. Objets Constantine 2005 J-F. Perrot 8

Questions de désignation : contexte Tout fragment de code JavaScript s'exécute dans le contexte d'un objet. tous les objets dont les noms sont connus dans ce contexte peuvent être désignés directement : ainsi par exemple : alert("bla bla") Exemple : soit un handler d'un objet Button, élément d'un formulaire : la place du bouton dans l'arbre des objets de la page est La fenêtre document form button dans le handler, on peut donc utiliser les noms définis dans la fenêtre, dans le document, dans le formulaire qui contient le bouton, et enfin dans le bouton lui-même. Objets Constantine 2005 J-F. Perrot 9

Ex. Désignations <html> <head> <script type="text/javascript"> var vb = "la value de ce bouton est : " var frc = "le formulaire contient " var elts = " elements\n" var dc = "le document contient " var frs = " formulaires\n" var tlf = "la taille de la fenêtre est : " var pxs = " pixels" </script></head> <body> <form> <p> <textarea name="aff" rows=5 cols=50> </textarea></p> <input type="button" value="pour voir" onclick = "Aff.value=vb+value+'\n'+frc+elements.length+elts+dc+ forms.length+frs+tlf+innerheight+' x '+innerwidth+pxs"> </form> </body> </html> Designation.html La fenêtre document form button Objets Constantine 2005 J-F. Perrot 10

Questions de désignation : ambiguïté? Quid si le même nom est défini à deux niveaux différents? l'évolution du système tend à éliminer ces situations C'est la désignation la plus locale qui prime, mais il vaut mieux lever l'ambiguïté, en désignant explicitement l'objet visé l'objet Window représentant la fenêtre active est accessible par la propriété implicite window, aussi appelée self dans notre exemple, les noms complets seraient : window.document.forms[0].elements[1].value window.document.forms[0].elements.length window.document.forms.length window.innerheight window.innerwidth Objets Constantine 2005 J-F. Perrot 11

Deux fonctionnalités des objets Window (il y en a bien d'autres!) La status line gérée à travers deux propriétés status (déjà vu) pour messages transitoires defaultstatus pour messages permanents La gestion du temps : settimeout(unechaînedecode, undélai) exécute l'action spécifiée par la chaîne unechaînedecode après undélai compté en millisecondes : settimeout("alert('avez-vous fini?')", 5000) SetTimeout.html Objets Constantine 2005 J-F. Perrot 12

Exemple : une horloge <html> <head> <script type="text/javascript"> function showtime(){ var now = new Date() var hours = now.gethours() var minutes = now.getminutes() var seconds = now.getseconds() var timevalue = "" + ((hours > 12)? hours - 12 : hours) timevalue += ((minutes < 10)? ":0" : ":") + minutes timevalue += ((seconds < 10)? ":0" : ":") + seconds timevalue += (hours >= 12)? " P.M." : " A.M." document.clock.face.value = timevalue defaultstatus = timevalue settimeout("showtime()",1000) } </script> </head> Showtime.html <body onload="showtime()"> <form name="clock"> <input type="text" name="face" size="15" /> </form> </body> </html> Objets Constantine 2005 J-F. Perrot 13

Fenêtres : ouverture et fermeture Les objets Window possèdent (entre autres) une méthode open() et une méthode close() les objets Document aussi, avec des significations différentes! Il faut donc préciser... window.close() ferme la fenêtre courante settimeout("window.close()", 5000) window.open()ouvre une nouvelle fenêtre!!! il lui faut comme arguments une URL où trouver un document à y charger (éventuellt. vide) un nom désignant la fenêtre en question (voir plus loin) différentes caractéristiques optionnelles renvoie comme résultat un pointeur sur la fenêtre créée. Objets Constantine 2005 J-F. Perrot 14