Les événements Ils sont au cœur de l’interactivité des pages.

Slides:



Advertisements
Présentations similaires
LE LANGAGE JAVASCRIPT LES FENETRES.
Advertisements

Conception de Site Webs dynamiques Cours 5
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Cours du 28/09/2009. Le dossier système des gadgets Pour accéder au dossier système des gadgets, cliquez sur Démarrer, tapez %userprofile%\appdata\local\microsoft\windows.
Création de pages Web dynamiques et sympathiques.
Copyright France Télécom, tous droits réservés Paris Web Ateliers Les bibliothèques JS jQuery Orange Labs Julien Wajsberg, Recherche & Développement.
SVG: Scalable Vector Graphics
Design Pattern MVC En PHP5.
Introduction aux Web Services Partie 1. Technologies HTML-XML
Par Fabrice Pasquier Cours IV
Une adresse gratuite... Comment créer une adresse gratuite...
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
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.
Faculté I&C, Claude Petitpierre, André Maurer Evénements en Javascript prototype.js.
28 novembre 2012 Grégory Petit
 Ecriture dynamique des Calques, des tableaux HTML
Le langage Javascript pour le web et application au DHTML
Manipulation de formulaires en Javascript
JavaScript PhD. Wajdi GARALI INSAT 2010
Feuilles de styles CSS Syntaxe d'application d'un style à une balise HTML : Les différents types de style : Pourquoi utiliser un style ? Possibilité étendue.
Animateur : Med HAIJOUBI
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Javascript 1° PARTIE : LES BASES
TP n°3 Javascript Contrôle de formulaire
TP n°2 Javascript EVENEMENTS ET OBJETS
Jquery.
É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.
Le langage du Web CSS et HTML
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-
JavaScript Nécessaire Web.
Introduction à JavaScript
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
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
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Cours LCS N°4 Présenté par Mr: LALLALI
Algorithmique et programmation en
Dynamic HTML Regroupement de trois éléments : le HTML
S'initier au HTML et aux feuilles de style CSS Cours 5.
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
CPI/BTS 2 Programmation Web Fonctions & Includes Prog Web CPI/BTS2 – M. Dravet – 02/11/2003 Dernière modification: 02/11/2003.
Le JavaScript.. Histoire Langage créé en 1995 par Brendan Eich pour la Netscape Communications Corporation. Est inspiré de nombreux langages, notamment.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Dreamweaver MX Jauneau Marie Claude-Antoine Zarate.
DreamWeaver Séance 2 HMIDA Ahmed A2008. Plan 1.Calques 2.CSS 3.Modèles 4.Formulaires 5.Comportements 6.Mise en ligne.
SI28 - Écriture multimédia interactive – A2004 Présentation Dreamweaver Partie 2 Pierre Malet GSU05.
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Flash 2 ème séance Interaction François Marliac Mickaël Moreira.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
Dreamweaver le retour Avec Les Formulaires Les Calques
Dreamweaver (2) ● les calques (layers) ● les comportements
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
Dreamweaver 2 Plan 1.Calques 2.CSS 3.Modèles 4.Comportements 5.Formulaires 6.Mise en ligne 1 Timothée Devaux Myriam Roudy Dreamweaver 2 Printemps 2008.
Les formulaires Les calques Les comportements Les scénarios Les modèles Les feuilles de styles (CSS) La mise en ligne Les formulaires permettent à l’utilisateur.
DREAMWEAVER Séance 2 SI28 – P06 Nolwenn PICHAUD.
 Flash : animations mais aussi interactions  ActionScript : langage de programmation multipliant les possibilités de dynamisme et d’interactivité d’un.
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 Interactions avec Action Script.
DREAMWEAVER 2 Michael LEPERS Pierre LAINÉ.  Formulaire  Calques  Comportements  Feuille de style CSS  Modèle  Scénario  Gestion du site.
SI28 : Dreamweaver 2 Feuilles de styles Calques Template / Modèle Comportements Scénarios Mise en ligne Clément BLONDEL GSM04 Christelle CHATENET GB04.
JavaScript.
Transcription de la présentation:

Les événements Ils sont au cœur de l’interactivité des pages

Un très bon site

Pourquoi des gestionnaires d’événements ? Généralement le code JavaScript est exécuté en réponse à un événement. C’est pour cette raison que JavaScript à été rajouté au navigateur : Offrir de l’interactivité Les gestionnaires d’événements sont le moteur de cette interactivité

Les objectifs des gestionnaires d’événements Détecter les actions de l’utilisateur Exécuter le code JavaScript associé Vous offrir la possibilité d’augmenter l’attrait de vos pages

L’histoire des gestionnaires d’événements Ils existent depuis Netscape 2 Ils n’ont pas cessés d’évoluer Mais de façon anarchique Il existe un standard lié au DOM Il n’a que Mozilla qui le supporte Internet Explorer à sa propre variante

La préhistoire des gestionnaires d’événements On pouvait les placer sur peu d’élément HTML Les liens Les formulaires et leurs champs On les utilisait pour : Des boutons animés Valider les donnés d’un formulaire avant de l’envoyer

L’évolution des gestionnaires d’événements Plus de variétés Utilisable sur plus d’élément HTML La possibilité de les affecter par le biais de JavaScript Plus d’information

La guerre des Navigateurs (encore) Les gestionnaires d’événements ont connu de grand développement lors de la sortie des navigateurs de quatrième génération. Chacun des camps à développer ses propres standards Comment on obtient des informations supplémentaire (ex : la position de la souris) Quand un événement peur être traité par un élément HTML et son élément parent, quel gestionnaire d’événement est exécuté en premier ?

Un espoir ? Le W3C a proposé une normalisation Elle à pour fondement l’ancien modèle de Netscape Tout comme les CSS, c’est une généralisation Ce modèle offre des solutions pour : La capture d’un événement La propagation L’annulation

Les problèmes de compatibilité Que faire alors ? Détecter mais ne pas se baser sur la dénomination du navigateur. Rester minimaliste autant que possible

Les problèmes de compatibilité Ce qui est « standard » Il y a beaucoup de gestionnaires d’événements communs aux navigateurs les plus courants. (Tableau)Tableau Il faut consulté une documentation car il ne sont pas permis dans toutes les balise HTML

onAbort onAbort (en cas d'interruption) Est prévu pour le cas où un utilisateur appuie sur le bouton stop du navigateur, alors que tous les graphiques ne sont pas encore chargés. D'après JavaScript (Netscape) est permis dans le repère suivant:

onChange onChange (après modification réussie) Au cas où un élément a reçu une valeur modifiée

onDblClick onDblClick (en double-cliquant) Au cas où l'utilisateur double-clique sur un élément.

onError onError (en cas d'erreur) Est approprié pour capter les messages d'erreur et les remplacer par des messages personnalisés. Attention pourtant, les erreurs ne sont pas pour autant écartées!! onError est conçu avant tout pour traiter les erreurs intervenant lors du chargement de graphiques.. D'après JavaScript est permis dans le repère HTML suivant:

onFocus onFocus (en activant) Entre en action quand l'utilisateur active un élément.

onKeyDown onKeyDown (en appuyant sur une touche) Entre en action si l'utilisateur, alors qu'il a activé un élément, appuie sur une touche.

onKeyPress onKeyPress (en maintenant une touche appuyée) Entre en action quand l'utilisateur appuie sur une touche et la maintient appuyée.

onKeyup onKeyup (en relâchant la touche) Entre en action quand l'utilisateur appuie sur une touche et la relâche.

onLoad onLoad (en chargeant un fichier) Entre en action quand un fichier HTML est chargé.

onMousedown onMousedown (en maintenant la touche de souris appuyée) Entre en action quand l'utilisateur maintient la touche de souris appuyée.

onMousemove onMousemove (en bougeant la souris) Entre en action si l'utilisateur bouge la souris indépendamment du fait que la touche en soit appuyée ou non.

onMouseout onMouseout (en quittant l'élément avec la souris) Entre en action quand l'utilisateur passe avec la souris sur un élément et le quitte ensuite.

onMouseUp onMouseover (en passant sur l'élément avec la souris) Entre en action quand l'utilisateur passe avec la souris sur un élément

onReset onReset (en initialisant le formulaire) Entre en action quand l'utilisateur veut initialiser le formulaire..

onSelect onSelect (en sélectionnant du texte) Entre en action quand l'utilisateur sélectionne du texte.

onSubmit onSubmit (en envoyant le formulaire) Entre en action quand l'utilisateur envoie un formulaire.

onUnload onUnload (en quittant le fichier) Entre en action quand l'utilisateur quitte un fichier HTML.

Les problèmes de compatibilité La mise en place Les moyens traditionnels pour référencer les événements sont suffisants (dans bien des cas) Par le biais d’un attribut placer dans une balise. Par le biais d’une propriété de l’objet. Mais il existe besoins qui n’ont pas de réponse simple Ex : la position de la sourie.

Les gestionnaires d’événements dans les balises Une écriture très simple : un_lieu Traditionnellement on place l’appelle à une fonction. Mais il est possible d’écrire un code plus long. Le problème est la lisibilité et le déboguage.

Annuler une action dans un attribut Il est possible de mettre fin à l’action que l’utilisateur allait entreprendre un_lieu

this dans un attribut On peut obtenir simplement une référence sur l’objet associé à la balise. un_lieu un_autre_lieu Mais la variable this n’est valable que entre les guillemets si on veut l’utiliser ailleurs (une fonction appelée), il faut la passer en paramètre.

Les gestionnaires d’événement dans les propriétés d’un Objet Si on possède dans une variable une référence à l’objet, il suffit d’écrire document.links['Ne_fait_rien'].onclick = Ne_pas_faire; Attention on ne met pas de parenthèses, on veut affecter la référence de la fonction à la propriété. Si on met des parenthèses, on évalue la fonction et affecte son résultat à la propriété. Il est possible de retirer un gestionnaire d’événement en affectant null à la propriété

Annuler une action dans une fonction appelé par le biais d’une propriété Cela ne change pas On_va_ou Rq : le code écrit dans un attribut se comporte comme une fonction, et inversement

this dans une fonction appelé par le biais d’une propriété Sans changement function doSomething(obj) { var linkTo = obj.href; return confirm('Do you really want to follow the link to ' + linkTo + '?') }

Les fonctions anonymes Ce sont des fonctions dépourvues de nom, car l’on ne souhaite pas les appeler à différent endroit. On utilise directement la référence que retourne leurs déclarations. document.links['Ne_fait_rien'].onclick = function () { return false} ; Cela peut-être un moyen pratique si l’on souhaite affecter de nombreux gestionnaires d’événement par du code JavaScript.

Obtenir plus d’information lors d’un événement Quand un événement survient tout ce que l’on sait c’est qu’il est survenu (on a été appelé) et à qui il est arrivé (this). Si l’on veut plus d’information il faut utilisé l’Objet event qui contient d’autre information. Malheureusement on accède de façon différente à cet objet Internet Explorer : C’est une propriété de l’objet windows, windows.event Netscape : C’est un paramètre passé à la fonction

Résoudre le problème de l’Objet event Voila une solution très simple function Un_Truc(e) { if (!e) var e = window.event; alert(e.type);} Ainsi e contient toujours l’Objet event. Il faut donc affecter le gestionnaire d’événement par le biais de la propriété de l’objet Malheureusement cet Objet event à des propriétés très variable d’un navigateur à l’autre.

Ce que contient l’Objet event Il est possible de savoir entre autre :  L’élément HTML qui a « générer l’événement  La touche qui à été tapez  Le bouton de la souris qui à été pressé  Et surtout la position de la souris Mais de nombreuse différence entre les navigateur rend cela difficile.

Les coordonnés de la souris Il n’existe pas moins de 6 types de coordonnées qui changent d’un navigateur à l’autre. Le code : function MaSouris(e){ var posx = 0; var posy = 0; if (!e) var e = window.event; if (e.pageX || e.pageY) { posx = e.pageX; posy = e.pageY; } else if (e.clientX || e.clientY) { posx = e.clientX + document.body.scrollLeft; posy = e.clientY + document.body.scrollTop; } // posx and posy Contiennent la position de la souris // Maintenant il faut l'utilisée }