Javascript. Thierry Lecroq. Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) Javascript 1 / 36



Documents pareils
TP JAVASCRIPT OMI4 TP5 SRC

HTML, CSS, JS et CGI. Elanore Elessar Dimar

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

Séance d ED n 5 : HTML et JavaScript

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Programmation Web. Madalina Croitoru IUT Montpellier

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

Sélection du contrôleur

Document Object Model (DOM)

Introduction à Expression Web 2

DOM - Document Object Model

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Optimiser pour les appareils mobiles

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

CREATION d UN SITE WEB (INTRODUCTION)

Présentation du Framework BootstrapTwitter

Normes techniques 2011

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

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

Extended communication server 4.1 : VoIP SIP service- Administration

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

TP 1. Prise en main du langage Python

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

Présentation du langage et premières fonctions

Utilisation de l éditeur.

Formulaire pour envoyer un mail

Langage Java. Classe de première SI

Publier dans la Base Documentaire

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

Notes pour l utilisation d Expression Web

Gestion Électronique de Documents et XML. Master 2 TSM

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

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Attaques de type. Brandon Petty

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

Publication dans le Back Office

as Architecture des Systèmes d Information

Les services usuels de l Internet

Pack Fifty+ Normes Techniques 2013

Module BD et sites WEB

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

Publier un Carnet Blanc

Programmation Internet Cours 4

Sécurité des applications web. Daniel Boteanu

AWS avancé. Surveiller votre utilisation d EC2

Guide de réalisation d une campagne marketing

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

Note de cours. Introduction à Excel 2007

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

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

ING & NEWSLETTER NEWSLETTER RESPONSIVE

Application de lecture de carte SESAM-Vitale Jeebop

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

SYSTÈMES D INFORMATIONS

EVOLUTION 7.1 Déroulement DREAM INFO 1 Dossier 23 Ciel Gestion Commerciale.

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

Approche Contract First

Algorithmique et Programmation, IMA

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

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

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Formation VBA 3 Interagir

Guide d utilisation des services My Office

Formation HTML / CSS. ar dionoea

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Programmation système I Les entrées/sorties

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Programmer en JAVA. par Tama

Introduction à MATLAB R

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

STAGE IREM 0- Premiers pas en Python

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

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

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

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

Les architectures 3-tiers Partie I : les applications WEB

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

INF 321 : mémento de la syntaxe de Java

Introduction au langage C

EXCEL TUTORIEL 2012/2013

ENVOI EN NOMBRE DE Mails PERSONNALISES

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

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Tutoriel de formation SurveyMonkey

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

3. RÉALISATION ET QUALIFICATION D UN PROTOTYPE 3.1 Réalisation d un prototype CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML

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

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

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

Campagnes d ings v.1.6

Transcription:

Javascript Thierry Lecroq Université de Rouen FRANCE Thierry Lecroq (Univ. Rouen) Javascript 1 / 36

Plan 1 Généralités sur Javascript 2 Les bases 3 Les objets prédéfinis 4 Les évènements Thierry Lecroq (Univ. Rouen) Javascript 2 / 36

Intérêt Exemple <html> <head> <title>page statique</title> </head> <body> <div> Nous sommes le 2/10/2008 </div> </body> </html> Thierry Lecroq (Univ. Rouen) Javascript 3 / 36

Intérêt Exemple <html> <head> <title>page dynamique</title> </head> <body> <script type = "text/javascript"> //<![CDATA[ date = new Date(); document.writeln("nous sommes le ", date); //]]> </script> </body> </html> Thierry Lecroq (Univ. Rouen) Javascript 4 / 36

Script Portion de code qui vient s insérer dans une page HTML Le code du script n est toutefois pas visible dans la fenêtre du navigateur car il est compris entre des balises spécifiques qui signalent au navigateur qu il s agit d un script écrit en langage JavaScript Interprêté du côté client Thierry Lecroq (Univ. Rouen) Javascript 5 / 36

interne <script type = "text/javascript"> //<![CDATA[ code javascript //]]> </script> externe <script type = "text/javascript" src = "url/script.js"> </script> Thierry Lecroq (Univ. Rouen) Javascript 6 / 36

les éléments situés dans l en-tête se comportent comme des déclarations, ils ne s exécutent pas directement les éléments situés dans le corps s exécutent au fur et à mesure du chargement de la page Thierry Lecroq (Univ. Rouen) Javascript 7 / 36

Javascript n est pas Java Java a été développé par Sun JavaScript a été développé par Netscape en 1995 sous le nom de LiveScript Microsoft développe le langage Script en 1995 norme des langages de script par l ECMA (European Computer Manufactures Association) basé sur les objets pas de classe Java est compilé (applets), Javascript est interprêté (scripts) ne peut pas lire/écrire dans les fichiers ne peut pas exécuter d autres programmes Thierry Lecroq (Univ. Rouen) Javascript 8 / 36

Utilisation de la balise <script>...</script> : déclaration de fonctions dans l en-tête HTML/XHTML (entre <head> et </head>) appel d une fonction ou exécution d une commande JavaScript dans <body>...</body> insertion d un fichier externe (usuellement.js ) Utilisation dans une URL, en précisant que le protocole utilisé est du JavaScript ex : <a href="javascript:instructionjavascript;">texte</a> Utilisation des attributs de balise pour la gestion événementielle : <balise onevenement="instructionjavascript">...</balise> Thierry Lecroq (Univ. Rouen) Javascript 9 / 36

<?xml version="1.0" encoding="utf8"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <title>exemple de page HTML contenant du JavaScript</title> <script type="text/javascript"> <!-- function texte() { document.write("texte généré."); } // --> </script> </head> <body> <script type="text/javascript"> <!-- document.write("vous pouvez mettre du code javascript dans le corps du document. // --> </script> <p> Ou bien dans une fonction appelée en cliquant <a href="javascript:texte()">ici</a>, <p> ou en passant la souris au-dessus de <a href="" onmouseover="texte()">cela</a>... </body> </html> Thierry Lecroq (Univ. Rouen) Javascript 10 / 36

Exemple de JavaScript inséré dans du code XHTML 1.0 <?xml version="1.0" encoding="utf8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>exemple de page XHTML contenant du Javascript</title> <script type="text/javascript"> <![CDATA[ function fenetre() { alert( Message d alerte dans une fonction. );} ]]> </script> </head> <body onload="alert( Message d alerte généré à la fin du chargement. )"> <script type="text/javascript"> <![CDATA[ alert( Message d alerte dans le corps du document. ); ]]> </script> <p> Ceci est le corps du document. <a href="javascript:fenetre()">message d alerte</a>. </p> </body> </html> Thierry Lecroq (Univ. Rouen) Javascript 11 / 36

Plan 1 Généralités sur Javascript 2 Les bases 3 Les objets prédéfinis 4 Les évènements Thierry Lecroq (Univ. Rouen) Javascript 12 / 36

4 types de base entier : 127 (base 10), 0755 (base 8), 0xFA15 (base 16) flottant : 0.123, -0.4e5,.67E-89 booléen : true, false chaîne de caractères : "chaine" ou chaine Thierry Lecroq (Univ. Rouen) Javascript 13 / 36

Typage et Variable Pas de déclaration des variables nbr = 10; fl = 3.141; str1 = "L étoile"; str2 = brille ; lien = <a href="index.htm">home</a> ; Portée des variables locale (uniquement dans le script ou la fonction) var vloc = 0 ; globale (en tout point du document) vglob = 0 ; Thierry Lecroq (Univ. Rouen) Javascript 14 / 36

Expressions arithmétique (3+4) * (56.7 / 89) chaîne de caractères "L étoile" + " " + "filante" logique temp == 37 h2o = (temp<100)? "eau" : "vapeur"; h2o = (temp>0)? ((temp<100)? "eau" : "vapeur") : "glace" Thierry Lecroq (Univ. Rouen) Javascript 15 / 36

Opérateurs affectation +=, -=, *=, /=, %=, &=, =, <<=, >>= comparaison ==,!=, <, <=, >, >= arithmétique %, ++, -- logique (évaluation paresseuse) &&,,! bit &,, ^ (XOR), <<, >>, >>> Thierry Lecroq (Univ. Rouen) Javascript 16 / 36

Structures de contrôle if else, switch case, for, while, break, continue, do while Thierry Lecroq (Univ. Rouen) Javascript 17 / 36

Fonctions Définition function nomfonction(param1,..., paramn) { // code JavaScript return expression ; } Appel nomvariable = nomfonction(exp1,..., expn); passage des paramètres par valeur Thierry Lecroq (Univ. Rouen) Javascript 18 / 36

Arguments function somme() { var argv = somme.arguments; var argc = somme.arguments.length; var result = 0; for (var i = 0 ; i < argc ; i++) { result += argv[i]; } return result; } somme(1,2,3) retourne 6 et somme(2) retourne 2 Thierry Lecroq (Univ. Rouen) Javascript 19 / 36

Lire/Écrire prompt() Ouvre une boîte de dialogue avec une zone saisie et 2 boutons OK et Annuler, retourne l information lue confirm() Ouvre une boîte de dialogue avec 2 boutons OK et Annuler, retourne un booléen alert() Permet d écrire un message dans une fenêtre Thierry Lecroq (Univ. Rouen) Javascript 20 / 36

Lire/Écrire Exemple <html> <head> <title>utilisation de prompt() et d alert()</title> </head> <body> <script type = "text/javascript"> //<![CDATA[ annee = prompt( En quelle année sommes-nous?, 2000); alert( Vous avez répondu : + annee); //]]> </script> </body> </html> Thierry Lecroq (Univ. Rouen) Javascript 21 / 36

Écrire, afficher des informations dans la fenêtre HTML Exemple <html> <head> <title>utilisation de document.write</title> </head> <body> <script type = "text/javascript"> //<![CDATA[ document.write( Hello word <br/> ); //]]> </script> </body> </html> Thierry Lecroq (Univ. Rouen) Javascript 22 / 36

Ouverture d une fenêtre open(url, name, options) Permet d ouvrir une fenêtre et d écrire dedans Exemple <script type = "text/javascript"> //<![CDATA[ fenetre = open(,, height=50, width=300, status=yes ); fenetre.document.write( <html> ); fenetre.document.write( <head> ); fenetre.document.write( <title> + Titre fenetre + </titl fenetre.document.write( </head> ); fenetre.document.write( <body> ); fenetre.document.write( Texte dans la fenetre ); fenetre.document.write( </body> ); fenetre.document.write( </html> ); //]]> </script> Thierry Lecroq (Univ. Rouen) Javascript 23 / 36

Ouverture d une fenêtre Les options directories : barre de liens menubar : barre de menu status : barre de statut location : barre d adresse scrollbars : ascenseurs resizable : redimensionnement par l utilisateur height : hauteur width : largeur left : position gauche top : position haute fullscreen : plein écran Thierry Lecroq (Univ. Rouen) Javascript 24 / 36

Plan 1 Généralités sur Javascript 2 Les bases 3 Les objets prédéfinis 4 Les évènements Thierry Lecroq (Univ. Rouen) Javascript 25 / 36

Les évènements onclick : un clic du bouton gauche de la souris sur une cible onmouseover : passage du pointeur de la souris sur une cible onblur : une perte de focus d une cible onfocus : une activation d une cible onselect : une selection d une cible onchange : une modification du contenue d une cible onsubmit : une soumission d un formulaire onload : un chargement d une page onunload : la fermeture d une fenetre ou le chargement d une page autre que la courante Thierry Lecroq (Univ. Rouen) Javascript 26 / 36

Les évènements Exemple <a href="" onclick="alert( Bonjour )">Cliquez</a> Thierry Lecroq (Univ. Rouen) Javascript 27 / 36

Plan 1 Généralités sur Javascript 2 Les bases 3 Les objets prédéfinis 4 Les évènements Thierry Lecroq (Univ. Rouen) Javascript 28 / 36

L objet document Propriété title Méthode write Thierry Lecroq (Univ. Rouen) Javascript 29 / 36

L objet Date var madate = new Date() getyear() : 2 chiffres getfullyear() : 4 chiffres getmonth() : 0 11 getdate() : 1 31 getday() : 0 6 (dimanche samedi) gethours() : 0 23 getminutes : 0 59 getseconds() : 0 59 Thierry Lecroq (Univ. Rouen) Javascript 30 / 36

L objet String Lorsqu on définit une constante ou une variable chaîne de caractères, JavaScript crée d une façon transparente une instance String 1 propriété : length les balises HTML/XHTML ont leur équivalent en méthode Liste (non exhaustive) des méthodes : bold(), italics(), fontcolor(), fontsize(), small(), big(), touppercase(), tolowercase(), sub(), sup(), substring(), eval(), split(), replace() Thierry Lecroq (Univ. Rouen) Javascript 31 / 36

L objet RegExp var re = new RegExp(motif, option) règles classiques pour la formation des motifs options possibles : "g", "i", "gi", "" Les méthodes test() : booléen exec() : retourne la première occurrence match() : s applique à un objet de type String Thierry Lecroq (Univ. Rouen) Javascript 32 / 36

L objet Math Propriétés : Math.PI et Math.E Méthodes : atan(), acos(), asin(),tan(), cos(), sin(), abs(), exp(), log(), max(), min(), pow(), round(), sqrt(), floor(), random() Thierry Lecroq (Univ. Rouen) Javascript 33 / 36

Les tableaux var T = new Array() Thierry Lecroq (Univ. Rouen) Javascript 34 / 36

Les tableaux classiques var jours = new Array(); var jours = new Array("Lundi", "Mardi", "Mercredi, "Jeudi", "Vendredi", "Samedi", "Dimanche"); jours[0] jours.length Thierry Lecroq (Univ. Rouen) Javascript 35 / 36

Les tableaux associatifs var tableau = new Array(); tableau["un"] = "La première cha^ıne"; tableau["deux"] = "La deuxième cha^ıne"; tableau["tnt"] = "Plein d autres cha^ınes"; tableau["un"] tableau.length Thierry Lecroq (Univ. Rouen) Javascript 36 / 36

Les méthodes de l objet Array var tableau3=tableau1.concat(tableau2); var chaine=tableau.join(séparateur); tableau.pop(); tableau.push(liste d éléments); tableau.reverse(); tableau.shift(); tableau.unshift(liste d éléments); tableau2=tableau1.slice(début, fin); tableau.sort(); tableau.splice(début, longueur); tableau.splice(début, longueur, liste d éléments); Thierry Lecroq (Univ. Rouen) Javascript 37 / 36

L objet form Attributs name : nom action : fichier method : get ou post enctype : encodage target : cadre cible (_blank pour une nouvelle page) Méthodes submit() : soumission reset() : remise à zéro Évènements onsubmit() : lors de la soumission onreset() : lors de la remise à zéro Thierry Lecroq (Univ. Rouen) Javascript 38 / 36

Les éléments de formulaires input text <input type="text" id="motclef" value="mot clef"> document.forms["monformulaire"].elements["motcle"] Les propriétés : value : valeur defaultvalue : valeur par défaut form : objet formulaire maxlength : longueur maximale Les méthodes : blur() : perte de focus focus() : prise de focus select() : donne le focus et sélcetionne la zone de saisie Les événements : onblur : lors de la perte de focus onchange : lors d un changement onfocus : lors de la prise de focus Thierry Lecroq (Univ. Rouen) Javascript 39 / 36

Les éléments de formulaires input button Les propriétés : value : libellé Les méthodes : click() : clic Les événements : onclick : lors d un clic Thierry Lecroq (Univ. Rouen) Javascript 40 / 36

Les éléments de formulaires select Les propriétés : size : nombre de lignes options : tableau value : valeur text : libellé defaultselected : true of false selected : true of false selectedindex : indice de la ligne sélectionnée Thierry Lecroq (Univ. Rouen) Javascript 41 / 36

Exemple <script type="text/javascript"> <!-- function basculer(orig, dest) { if (orig.options.selectedindex >= 0) { var o = new Option(orig.options[orig.selectedIndex].text, orig.options[orig.selectedindex].value); dest.options[dest.options.length]=o; orig.options[orig.selectedindex]=null; } else { alert("aucune ligne sélectionnée"); } } function monter(f) { var no=f.choix.selectedindex; if (no<0) { return true; } if (no>=1) { inverser(f.choix, no, no-1); } } function baisser(f) { var no=f.choix.selectedindex; if (no<0) { return true; } if (no<f.choix.options.length-1) { inverser(f.choix, no, no+1); } } Thierry Lecroq (Univ. Rouen) Javascript 42 / 36

Exemple function inverser(liste, ind1, ind2) { var valeur=liste.options[ind1].value; var texte=liste.options[ind1].text; liste.options[ind1].value=liste.options[ind2].value; liste.options[ind1].text=liste.options[ind2].text; liste.options[ind2].value=valeur; liste.options[ind2].text=texte; liste.selectedindex=ind2; } function verifierliste(f) { if (f.choix.options.length == 0) { alert("indiquez les raisons vous ayant poussé à créer votre site"); return false; } for (var i=0; i<f.choix.options.length; i++) { f.choix.options[i].selected=true; } f.submit(); } // --> </script> Thierry Lecroq (Univ. Rouen) Javascript 43 / 36

Exemple <form id="nomformulaire" method="get" action="formu.html"> Double cliquez sur les raisons qui vous ont poussé à créer votr Internet, puis ordonnez les par ordre d importance : <table> <tr> <td> Possibilités :</br> <select id="raison" size="5" multiple="multiple" style="width:250px;" ondblclick="basculer(this, this.form.choix)"> <option value="1">apprendre le langage</option> <option value="2">parler de ma passion</option> <option value="3">créer une activité commerciale</option> <option value="4">échanger avec le monde entier</option> <option value="5">faire mon métier</option> </select> </td> Thierry Lecroq (Univ. Rouen) Javascript 44 / 36

Exemple <td> Vos choix :<br/> <select id="choix" size="5" multiple="multiple" style="width:250px;" ondblclick="basculer(this, this.form.raison)"> </select> </td> <td> <input type="button" value="monter" onclick="monter(this.form)"><br/> </td> <td> <input type="button" value="baisser" onclick="baisser(this.form)"><br/> </td> </tr> </table> <p> <input type="button" value="valider" onclick="verifierliste(this.form)"> </p> </form> Thierry Lecroq (Univ. Rouen) Javascript 45 / 36

Plan 1 Généralités sur Javascript 2 Les bases 3 Les objets prédéfinis 4 Les évènements Thierry Lecroq (Univ. Rouen) Javascript 46 / 36

Définition d objets simples Exemple function Chien(nom, race, maitre) { this.nom = nom; this.race = race; this.maitre = maitre; this.print = printchien; } function printchien() { document.write("chien ", this.nom, " de race ", this.race, " appartenant à ", this.maitre, "<br/ } Thierry Lecroq (Univ. Rouen) Javascript 47 / 36

Définition d objets simples Exemple function printchien() { with (this) { document.write("chien ", nom, " de race ", race, " appartenant à ", maitre, "<br/>"); } } rantanplan = new Chien("Rantanplan", "indéfinie", "Lucky Luke" rantanplan.print(); Thierry Lecroq (Univ. Rouen) Javascript 48 / 36