JavaScript

Dans la programmation traditionnelle, les applications sont exécutées séquentiellement du début à la fin de produire leurs résultats. Cependant, à l’heure actuelle, le modèle prédominant est celui de la programmation basée sur des événements. Les scripts et les programmes attendent sans tâche avant qu’un événement ne se produise. Une fois fabriqués, ils dirigent une tâche associée à l’apparition de cet événement et lorsqu’il se termine, le script ou le programme renvoie à l’état de veille.

JavaScript permet aux scripts avec les deux méthodes de programmation: séquentielle et basée sur des événements. Les événements JavaScript permettent l’interaction entre les applications et les utilisateurs JavaScript. Chaque fois qu’un bouton est enfoncé, un événement se produit. Chaque fois qu’une touche est enfoncée, un événement est également produit. Cependant, pour un événement à survenir, il n’est pas obligatoire que l’utilisateur intervienne, car par exemple, chaque fois qu’une page est chargée, un événement est également produit.

Le dimanche niveau 1 n’inclut pas les spécifications liées à Événements javascript. Le dimanche Niveau 2 inclut certains aspects liés aux événements et DOM Niveau 3 inclut la spécification complète des événements JavaScript. Malheureusement, la spécification DOM Niveau 3 a été publiée en 2004, plus de dix ans après que les premiers navigateurs comprenaient des événements.

Pour cette raison, bon nombre des propriétés et méthodes actuelles liées aux événements sont incompatibles avec celles du soleil . En fait, des navigateurs tels que Internet Explorer Treatent les événements suivant leur propre modèle incompatible avec la norme.

Le modèle d’événement simple a été introduit dans la version 4 de la norme HTML et est considérée comme faisant partie du niveau DOM le plus élémentaire. Bien que ses fonctionnalités soient limitées, c’est le seul modèle compatible avec tous les navigateurs et, par conséquent, le seul qui vous permet de créer des applications qui fonctionnent de la même manière dans tous les navigateurs.

15.1 Types d’événements

Chaque élément XHTML a sa propre liste d’événements possibles pouvant être attribués. Le même type d’événement (par exemple, cliquer sur le bouton gauche de la souris) peut être défini pour plusieurs éléments XHTML et le même élément XHTML peut avoir différents associés d’événements.

Le nom des événements est construit via le préfixe on, suivi du nom anglais de l’action associée à l’événement. Ainsi, l’événement pour cliquer sur un élément avec la souris est appelé onclick et l’événement associé à la déplacement de la souris s’appelle onmousemove.

Le tableau suivant résume les événements les plus importants définis par JavaScript:

 » A7565C1A49 « >
événement

Description Éléments pour lesquels il est défini
Id = « 7a36d31acf »>
onblur

un élément perd le

<button>, <input>, , <select>,

,

,

Id = « EA92971B26 »>

,

onchange Un élément a été modifié <input>, <select>, <textarea> onclick appuyez sur la souris Tous les éléments ondblclick appuyez deux fois sur une rangée avec la souris Tous les éléments onfocus Un élément Obtient la mise au point <button>, <input>, <label>, <select>, <textarea>, , onkeydown Appuyez sur une touche et ne le libérez pas éléments de formulaire et onkeypress Appuyez sur A éléments de formulaire et onkeyup libérer une clé pulsée éléments de formulaire et onload page entièrement chargée onmousedown Appuyez sur un bouton de la souris et ne le libérez pas tous les éléments

>

onmousemove déplace la Souris tous les éléments onmouseout la souris « laisse » de td élément> tous les éléments onmouseover la souris « entre » dans le éléments onmouseup relâche le bouton de la souris Tous les éléments onreset initialiser le formulaire <form> onresize modifie la taille de la fenêtre onselect Sélectionnez un texte <input>, <textarea> onsubmit envoie le
onunload La page est abandonnée, par exemple lors de la fermeture du navigateur Dor

Les événements les plus utilisés dans les applications Web traditionnelles sont onload pour attendre la page complète de la page, Événements onclick, onmouseover, onmouseout pour contrôler la souris et onsubmit pour contrôler l’envoi de la Formulaires.

Quelques événements dans la table précédente (onclick, onkeydown,

, onreset, onsubmit) vous permet d’éviter une « action par défaut » de cet événement. Plus tard, ce comportement est indiqué en détail, qui peut être très utile dans certaines techniques de programmation.

actions typiques qu’un utilisateur effectue sur une page Web peut conduire à une succession d’événements. En appuyant par exemple sur un type Les événements sont déclenchés onmousedown, onclick, onmouseup et onsubmit consécutivement.

15.1.1 Managers d’événement

Un événement JavaScript en soi manque d’utilité. Pour que les événements soient utiles, les fonctions ou le code JavaScript doivent être associés à chaque événement. De cette manière, lorsqu’un événement survient, le code indiqué est exécuté, l’application peut donc réagir à tout événement qui se produit pendant l’exécution.

Les fonctions ou le code JavaScript défini pour chaque événement appelé événement Gestionnaire (gestionnaires d’événements en anglais) et comme JavaScript est une langue très flexible, il existe plusieurs manières différentes d’indiquer les gestionnaires:

  • gestionnaires en tant qu’attributs des éléments XHTML.
  • Les gestionnaires comme fonctions javascript externes.
  • « sémantiques » gestionnaires.

15.1.1.1 gestionnaires tels que les attributs XHTML

Il s’agit de la méthode la plus simple et moins professionnelle d’indiquer le code JavaScript qui doit être exécuté lorsqu’un événement se produit. Dans ce cas, le code est inclus dans un attribut de l’élément XHTML lui-même. Dans l’exemple suivant, vous souhaitez afficher un message lorsque l’utilisateur ponctue avec la souris sur un bouton:

<input type="button" value="Pinchame y verás" onclick="console.log('Gracias por pinchar');" />

Méthode, les attributs XHTML sont définis avec le même nom que les événements que vous souhaitez gérer. L’exemple précédent ne veut que contrôler l’événement piquant avec la souris, dont le nom est onclick. Ainsi, l’élément XHTML pour lequel vous souhaitez définir cet événement doit inclure un attribut appelé onclick

Le contenu de l’attribut est une chaîne de texte qu’il contient Toutes les instructions JavaScript sont exécutées lorsque l’événement se produit. Dans ce cas, le code JavaScript est très simple (console.log('Gracias por pinchar');), car il s’agit uniquement d’afficher un message.

Dans cet autre exemple, lorsque l’utilisateur clique Sur l’élément <div> montre un message et lorsque l’utilisateur passe la souris sur l’élément, un autre message est affiché:

<div onclick="console.log('Has pinchado con el ratón');" onmouseover="console.log('Acabas de pasar el ratón por encima');"> Puedes pinchar sobre este elemento o simplemente pasar el ratón por encima</div>

/ div>

Cet autre exemple inclut l’une des instructions les plus utilisées dans les applications JavaScript les plus anciennes:

<body onload="console.log('La página se ha cargado completamente');"> ...</body>

Le message précédent s’affiche une fois la page entièrement chargée, c’est-à-dire après que son code HTML a été téléchargé, vos images et tout autre objet inclus sur la page.

L’événement onload est l’un des plus utilisés depuis, comme on le voit dans le chapitre DOM, les fonctions qui permettent l’accès et manipulent les nœuds de l’arbre DOM ne sont disponibles que lorsque la page a été chargée complexe. Tiniquement.

15.1.1.2 Gestionnaires d’événements et variable Ce

JavaScript définit une variable spéciale appelée this créé automatiquement et c’est-à-dire emploie dans certaines techniques de programmation avancées. Lors d’événements, vous pouvez utiliser la variable this pour faire référence à l’élément XHTML qui a provoqué l’événement. Cette variable est très utile pour des exemples tels que ceux suivants:

lorsque l’utilisateur passe la souris sur le <div>, la couleur de bord est affichée en noir. Lorsque la souris quitte l’ID

, le bord est à nouveau montré avec la couleur gris clair d’origine.

<div style="width:150px; height:60px; border:thin solid silver"> Sección de contenidos...</div>

si la variable n’est pas utilisée this, le code nécessaire pour modifier la couleur des bords, ce serait comme suit:

<div style="width:150px; height:60px; border:thin solid silver" onmouseover="document.getElementById('contenidos').style.borderColor='black';" onmouseout="document.getElementById('contenidos').style.borderColor='silver';"> Sección de contenidos...</div>

Le code précédent est trop long et trop sujet à faire des erreurs. Dans le code d’un événement, JavaScript crée automatiquement la variable this, qui fait référence à l’élément XHTML qui a provoqué l’événement. Ainsi, l’exemple précédent peut être réécrit comme suit:

Le code précédent est beaucoup plus compact, plus facile à lire et à écrire et continuer à fonctionner correctement même si la valeur de l’attribut ID du <div> 15.1.1.3 Les gestionnaires d’événements comme des fonctions externes

La définition des gestionnaires d’événements dans les attributs XHTML est une méthode simple mais non établie pour traiter les événements JavaScript. L’inconvénient principal est qu’il est compliqué de l’excès dès que quelques instructions sont ajoutées, il n’est donc recommandé que pour les cas les plus simples.

Lorsque le code de la fonction de manutention est plus complexe, tel que le Validation d’une forme, il est conseillé de regrouper tout le code JavaScript dans une fonction externe appelée à partir du code XHTML lorsque l’événement se produit.

de cette manière, l’exemple suivant:

<input type="button" value="Pinchame y verás" onclick="console.log('Gracias por pinchar');" />

peut être transformé en:

<input type="button" value="Pinchame y verás" onclick="muestraMensaje()" />

dans des fonctions externes Il n’est pas possible d’utiliser la variable this de la même manière que dans les gestionnaires insérés dans les attributs XHTML. Par conséquent, il est nécessaire de passer la variable this comme paramètre sur la fonction de manipulation:

function resalta(elemento) { switch(elemento.style.borderColor) { case 'silver': case 'silver silver silver silver': case '#c0c0c0': elemento.style.borderColor = 'black'; break; case 'black': case 'black black black black': case '#000000': elemento.style.borderColor = 'silver'; break; }}

<div style="padding: .2em; width: 150px; height: 60px; border: thin solid silver" onmouseover="resalta(this)" onmouseout="resalta(this)"> Sección de contenidos...</div>

Dans l’exemple précédent, la fonction externe est transmise le paramètre this, qui Dans la fonction s’appelle elemento. En passant this comme paramètre, il est possible d’accéder directement à la fonction externe aux propriétés de l’élément qui a provoqué l’événement.

D’autre part, l’exemple précédent est compliqué par la manière dont les différents navigateurs stockent la valeur de la propriété borderColor. Tandis que Firefox stocke (dans le cas où les quatre bords correspondent à la couleur) la valeur simple black, Internet Explorer le stocke comme black black black black et stocke son hexadécimal Représentation #000000.

15.1.1.4 Mancheurs d’événements sémantiques

Utilisez les attributs XHTML ou les fonctions externes pour ajouter des gérants d’événements ont un désagrément grave : « Intégrez » le code XHTML de la page.

Comme on le sait, lors de la création de pages Web, il est recommandé de séparer le contenu (XHTML) de la présentation (CSS). Autant que possible, il est également recommandé de séparer le contenu (XHTML) de la programmation (JavaScript). Mélanger JavaScript et XHTML complique excessivement le code source de la page, il rend son entretien difficile et réduit la sémantique du document final produit.

Heureusement, il existe une méthode alternative pour définir les gestionnaires d’événements de JavaScript. Cette technique consiste à attribuer des fonctions externes à l’aide des propriétés DOM des éléments XHTML. Ainsi, l’exemple suivant:

<input type="button" value="Pinchame y verás" onclick="console.log('Gracias por pinchar');" />Se puede transformar en:

>

<input type="button" value="Pinchame y verás" />

Le code XHTML résultant est très « propre », car il ne se mélange pas avec le code JavaScript. La technique des gestionnaires sémantiques comprend:

  1. Attribuer un identifiant unique à l’élément XHTML à l’aide de l’attribut ID.
  2. Créez une fonction JavaScript en charge de la manipulation de l’événement.
  3. Attribuez la fonction à un événement spécifique de l’élément XHTML à l’aide de DOM.

Un autre avantage supplémentaire de cette technique est que les fonctions externes peuvent utiliser la variable this a référé à l’élément que l’original de l’événement.

attribuer à la fonction de traitement à l’aide de DOM est un processus qui nécessite une explication détaillée. Tout d’abord, vous obtenez la référence de l’élément auquel le gestionnaire va être attribué:

Suivant, est attribué la fonction externe à l’événement souhaité au moyen d’une propriété d’élément portant le même nom de l’événement:

Enfin, l’externe fonction. Comme cela est déjà mentionné dans les chapitres précédents, surtout (et la cause la plus courante des erreurs) est d’indiquer que le nom de la fonction, c’est-à-dire qui s’affiche avec les parenthèses en attribuant la fonction:

document.getElementById("pinchable").onclick = muestraMensaje;

Si les parenthèses sont ajoutées à la fin, la fonction est en cours d’appel et l’attribution de la valeur renvoyée par la fonction à l’événement onclick élément.

Le seul inconvénient de cette méthode est que les gestionnaires sont attribués à l’aide des fonctions DOM, qui ne peuvent être utilisées que lorsque la page a été complètement chargée. De cette manière, de sorte que la cession des gestionnaires n’est pas erronée, il est nécessaire de s’assurer que la page a déjà été chargée.

L’un des moyens les plus simples de s’assurer qu’un certain code va Soyez exécuté ensuite que la page est entièrement téléchargée consiste à utiliser l’événement onload:

L’art antérieur utilise une fonction anonyme pour attribuer des instructions à l’événement onload de la page (dans ce cas, il a été défini par l’objet ). De cette manière, de veiller à ce qu’un certain code soit exécuté une fois la page chargée, il est nécessaire de l’inclure à l’intérieur de la construction suivante:

window.onload = function() { ...}

15.2 Le flux d’événements

Outre les événements de base observés, les navigateurs incluent un mécanisme associé appelé flux d’événements ou « flux d’événements ». Le flux d’événements permet à plusieurs éléments différents de réagir au même événement.

si un élément <div> avec un bouton est défini à l’intérieur lorsque l’utilisateur clique sur l’intérieur. Le bouton, le navigateur vous permet d’attribuer une fonction de réponse à bouton, une autre fonction de réponse au <div> qui contient une autre fonction de réponse à la page complète. De cette manière, un seul événement (la pulsation d’un bouton) provoque la réponse de trois éléments sur la page (y compris la page elle-même).

La commande sur laquelle les événements attribués à chaque élément sont exécutés à partir de la La page est ce qui constitue le flux d’événements. De plus, il existe de nombreuses différences dans le flux d’événements de chaque navigateur.

15.2.1 Boubelle d’événement

dans ce modèle d’écoulement d’événement, l’ordre suivi est de l’élément. plus spécifique à l’élément moins spécifique.

Dans les exemples suivants, la page HTML suivante est utilisée:

<html onclick="procesaEvento()"> <head><title>Ejemplo de flujo de eventos</title></head> <body onclick="procesaEvento()"> <div onclick="procesaEvento()">Pincha aqui</div> </body></html>

Lorsque vous appuyez sur le texte « Cliquez ici », c’est à l’intérieur de <div>, les événements suivants sont exécutés sur l’ordre indiquant le schéma suivant:

« Boubelle d’événement » Schéma de fonctionnement

Figure 15.1 « Schéma de fonctionnement » Boubelle d’événement « 

Le premier événement pris en compte est celui généré par <div> contenant le message. Ensuite, le navigateur exécute les ascendants d’élément jusqu’à atteindre le niveau supérieur, qui est l’élément document

Ce modèle d’écoulement d’événements est celui qui inclut l’Internet Explorer le navigateur. Les navigateurs de la famille Mozilla (par exemple, Firefox) supportent également ce modèle, mais légèrement modifié. L’exemple précédent dans un navigateur familial Mozilla présente le flux d’événements suivant:

"Boubelle d

Figure 15.2 « Boubillage d’événement « Schéma de fonctionnement dans les navigateurs Mozilla

Bien que l’objet window ne fait pas partie du DOM, le flux d’événements mis en œuvre par Mozilla Travel the Element Ascendants jusqu’à ce que le même objet window, en ajoutant un événement plus au modèle Internet Explorer.

15.2.2 Capture d’événement

dans cet autre Modèle, le flux d’événements est défini de l’élément moins spécifique à l’élément le plus spécifique. En d’autres termes, le mécanisme défini est précisément le contraire de « bouillonnement d’événement ». Ce modèle a été utilisé par le navigateur de Netscape Navigator 4.0 manquant.

15.2.3 Evénements DOM

Le flux d’événements défini dans la spécification Sun prend en charge à la fois des bouillons et de la capture, mais l’événement La capture « fonctionne en premier. Les deux flux d’événements parcourent tous les objets Dom de l’objet document à l’élément le plus spécifique et inversement. De plus, la plupart des navigateurs mettent en œuvre les normes, le flux continue jusqu’à l’objet window

Le flux d’événements DOM de l’exemple précédent est présenté ci-dessous:

Schéma d'écoulement de l'événement du modèle DOM

Figure 15.3 Schéma de flux d’événements du modèle DOM

Le plus spécifique L’élément du flux d’événements n’est pas le <div> qui déclenche l’exécution des événements, mais le nœud type TextNode qu’il contient le <div>. Le fait de combiner les deux flux d’événements, provoque l’exécution du nœud le plus spécifique à exécuter deux événements consécutivement.

15.3 gestionnaires et écouteurs

dans les sections précédentes, le concept a été introduit de « gestionnaire d’événements « Ou gestionnaire d’événements, qui sont les fonctions qui répondent aux événements qui se produisent. De plus, trois façons de définir des gestionnaires d’événements ont été visualisés pour le modèle d’événement de base:

  1. code JavaScript dans un attribut de l’élément HTML
  2. Définition de l’événement dans le HTML Article lui-même mais le gestionnaire est une fonction externe
  3. manutentionnaires sémantiques assignés via Sun Sun sans la modification du code HTML de la page

Tous ces modèles fonctionnent correctement Tous les navigateurs disponibles aujourd’hui. Les différences entre les navigateurs se présentent lorsque plusieurs personnes manipulatrices d’événements sont définies pour le même événement d’un élément. Le moyen d’assigner et de «désassigner» plusieurs poignées multiples dépend entièrement du navigateur utilisé.

15.3.1 DOM Gains d’événement

La spécification SDI définit deux autres méthodes similaires à celles disponibles pour Internet Explorateur et soi-disant et removeEventListener() pour associer et dissocier les gestionnaires d’événements.

La principale différence entre ces méthodes Et ce qui précède est que, dans ce cas, trois paramètres sont requis: le nom de « l’écoute d’événement », une référence à la fonction responsable du traitement de l’événement et du type de flux d’événements auquel il est appliqué.

Le premier argument n’est pas le nom complet de l’événement car il se produit dans le modèle Internet Explorer, mais vous devez supprimer le préfixe on. En d’autres termes, si sur Internet Explorer, le nom onclick sera utilisé maintenant click

Le troisième paramètre est , le gestionnaire est utilisé dans la phase de capture. Si le troisième paramètre est false, le gestionnaire est associé à la phase de barbillage.

Ensuite, les exemples ci-dessus sont affichés à l’aide des méthodes définies par DOM:

en associant plusieurs Fonctions à un seul événement:

« 1b959c6ef4 »>

Si une fonction est associée à un débit d’événement donné, cette fonction ne peut être désassassée que dans le même type de flux d’événements. Si l’exemple suivant est considéré:

function muestraMensaje() { console.log("Has pulsado el ratón");} var elDiv = document.getElementById("div_principal");elDiv.addEventListener("click", muestraMensaje, false); // Más adelante se decide desasociar la función al eventoelDiv.removeEventListener("click", muestraMensaje, true);

La dernière instruction tente de dissocier la fonction muestraMensaje Dans le flux d’événements de capture, tout en l’associant, le flux d’événements de barbillage a été indiqué. Bien que l’exécution de l’application ne s’arrête pas et que aucune erreur ne se produise, la dernière instruction n’a aucun effet.

15.4 L’événement

Lorsqu’un événement se produit, il ne suffit pas de Affectation d’une fonction responsable du traitement de cet événement. Normalement, la fonction qui traite les informations nécessaires aux besoins de l’événement concernant l’événement produit: la clé qui a été enfoncée, la position de la souris, l’élément que l’événement a produit, etc.

l’objet event est le mécanisme défini par les navigateurs pour fournir toutes ces informations. C’est un objet qui est créé automatiquement lorsqu’un événement se produit et qui est détruit automatiquement lorsque toutes les fonctions attribuées à l’événement ont été exécutées.

Le dimanche spécifie que l’objet est le seul paramètre qui doit accéder aux fonctions responsables des événements de traitement. Par conséquent, dans les navigateurs qui suivent les normes, l’objet est accessible event à travers la matrice des arguments de la fonction:

Il est également possible d’indiquer l’argument de nom explicitement:

Le fonctionnement des navigateurs qui suivent que les normes peuvent sembler « magiques », car dans la déclaration de la fonction, il est indiqué qu’il a un paramètre, mais dans la demande, aucun paramètre n’est transmis à cette fonction. En réalité, les navigateurs qui suivent des normes créent automatiquement ce paramètre et la transmettent toujours à la fonction chargée de la manipulation de l’événement.

15.4.1 Propriétés et méthodes

Même si le mécanisme défini par navigateurs pour l’objet event est similaire, il existe de nombreuses différences dès que les propriétés et les méthodes de l’objet.

15.4.1.1 Propriétés définies par DOM

Le tableau suivant recueille les propriétés définies de l’objet event dans les navigateurs qui suivent les normes:

detail

type est produit

Propriété / Méthode Retours Description
altKey Boolean Retours Si la touche et false dans un autre cas
Boolean indique si l’événement appartient au flux d’événements de bulles
button numéro entier le bouton de la souris appuyé.Valeurs possibles: 0 – Aucune touche enfoncée 1 – Bouton a été appuyé sur izquierdo 2 – Se ha pulsado el botón derecho 3 – Se pulsan a la vez el botón izquierdo y el derecho 4 – Se ha pulsado el botón central 5 – Se pulsan a la vez el botón izquierdo y el central 6 – Se pulsan a la vez el botón derecho y el central 7` – sont pressés en même temps les 3
cancelable boolean indique si l’événement peut annuler
cancelBubble boolean indique si le flux d’événements de type bullbing
a arrêté charCode Numéro entier Le code Unicode de caractère correspondant à la clé pulsée
clientX nombre total coordonnée x de la position de la souris par rapport à la zone visible de la
clientY nombre entier coordonnée et la position de la souris re Croquis de la zone visible de
ctrlKey Boolean Retours Si la touche et false dans un autre cas
currentTarget élément l’élément qui est l’objectif de l’événement
numéro complet le nombre de fois que les boutons de la souris ont été enfoncés / Td>
eventPhase numéro entier la phase à laquelle appartient l’événement: 0 – Capture de phase 1 – Dans l’élément cible 2 – Boubillage de phase
isChar boolean indique si la touche de pression correspond à un caractère
keyCode nombre entier indique le code numérique de la Touche pressée
metaKey renvoie si la touche et false dans un autre cas
pageX Numéro entier Coordonnée x de la position de la souris par rapport à la page
numéro complet Coordonnées et la position de la souris par rapport à la page
preventDefault() fonction est utilisé pour annuler l’action prédéfinie de l’événement
relatedTarget élément l’élément qui est l’objectif secondaire de l’événement ( liés aux événements de la souris)
nombre total x coordonnez le position de la souris par rapport à l’écran complet
screenY Numéro entier Coordonnées et la position de la souris concernant l’écran complet
shiftKey Boolean Retours Si la touche et false dans un autre cas
stopPropagation() fonction est utilisé pour arrêter le flux d’événements de type Bullbling
target élément l’élément qui provient de l’événement
timeStamp numéro la date et l’heure dans lesquelles l’événement
texte string le nom de l’événement

Contrairement à ce qui se passe avec Internet Explorer, la plupart des propriétés d’objet de soleil en train de lire. Spécifiquement, seules les propriétés suivantes sont lues et écrivent: altKey, button

et

.

La touche est une clé spéciale sur certains claviers d’ordinateur très anciens. Actuellement, dans les ordinateurs PC, il est assimilé à la touche Alt ou la clé Windows, tandis que sur les ordinateurs de type Mac, il est assimilé à la touche Command.

15.4.2 Similités et différences entre les navigateurs

15.4.2.1 Similités

Dans les deux cas, la propriété Type est utilisée pour obtenir le type d’événement c’est à propos de:

function procesaEvento(elEvento) { if(elEvento.type == "click") { console.log("Has pulsado el raton"); } else if(elEvento.type == "mouseover") { console.log("Has movido el raton"); }} elDiv.onclick = procesaEvento;elDiv.onmouseover = procesaEvento;

tandis que le gestionnaire d’événements inclut le préfixe on Votre nom, le type d’événement renvoyé par la propriété type distribue de ce préfixe.C’est pourquoi dans l’exemple précédent compare sa valeur avec click et mouseover et non avec

et onmouseover.

Une autre similarité est l’utilisation de la propriété keyCode pour obtenir le code correspondant au caractère. de la clé qui a été pressée. La clé pulsée ne représente pas toujours un caractère alphanumérique. Lorsque vous appuyez sur la touche ENTER Par exemple, le code . La barre d’espace correspond au code 32 et la touche DELETE a un code égal à

. . Un moyen immédiat de vérifier si certaines touches spéciales ont été appuyées, consiste à utiliser les propriétés shiftKey, altKey et ctrlKey.

Pour obtenir la position de la souris par rapport à la partie visible de la fenêtre, les propriétés et = « 501c3a634f »>

. De la même manière, d’obtenir la position du pointeur de la souris par rapport à l’écran complet, les propriétés sont utilisées screenX et screenY.

15.4.2.2 Différences

L’une des principales différences est la manière dont l’élément qui provient de l’événement est obtenu. Si un élément <div> est attribué à un événement onclick, en appuyant sur la souris l’intérieur de la <div> un événement dont l’objectif est originaire est l’élément .

> Une autre différence importante est celle concernant l’obtention du caractère correspondant à la clé pulsée. Chaque clé pulsée a associé deux codes différents: le premier est le code de la clé qui a été appuyé et que l’autre code est celui qui fait référence au caractère pulsé.

Le premier code est un code de clé interne. Pour JavaScript. Le deuxième code coïncide avec le code de caractère ASCII. De cette façon, la lettre a a un code interne égal à 65 et un code ASCII de 97 D’autre part, la lettre A a également un code interne de 65 et un code ASCII de 95.

dans Internet Explorer, le contenu de la propriété keyCode dépend de chaque événement. Dans « Clé Appuyez sur » Events (onkeyup et onkeydown) sa valeur est égale au code interne. Dans « Ecrire avec des touches » Events (onkeypress) sa valeur est égale au code ASCII du caractère pressé.

au contraire, dans les navigateurs qui suivent Les normes de propriété keyCode est égale au code interne dans « Clé Appuyez sur » Events (onkeyup et onkeydown) et il est égal à 0 sur les événements « écriture avec les touches » (onkeypress).

En pratique, cela suppose que dans les événements onkeyup Vous pouvez utiliser la même propriété dans tous les navigateurs:

function manejador(elEvento) { var evento = elEvento || window.event; console.log(" El código de la tecla pulsada es " + evento.keyCode);}document.onkeyup = manejador;document.onkeydown = manejador;

Dans ce cas, si la page est chargée dans n’importe quel navigateur et enfoncée par exemple la clé A, le message suivant:

message affiché dans Le navigateur Firefox

Figure 15.4 Message affiché dans le navigateur Firefox

La grande différence se produit E Lorsque vous essayez d’obtenir le caractère appuyé, dans ce cas, la lettre a. Pour obtenir la lettre, vous devez d’abord obtenir votre code ASCII. Comme discuté, sur Internet explore la valeur de la propriété keyCode dans l’événement onkeypress est égal au caractère ASCII:

function manejador() { var evento = window.event;

Toutefois, dans les navigateurs qui ne sont pas Internet Explorer, Le code précédent est égal à 0 pour n’importe quelle touche pulsée. Dans ces navigateurs suivant les normes, la propriété doit être utilisée charCode, qui renvoie le code de la clé pulsée, mais uniquement pour l’événement onkeypress::

function manejador(elEvento) { var evento = elEvento;

une fois obtenu le Code Dans chaque navigateur, la fonction doit être utilisée String.fromCharCode() pour obtenir le caractère dont le code ASCII est passé sous forme de paramètre. Par conséquent, la solution complète pour obtenir la clé pulsée dans n’importe quel navigateur est la suivante:

L’une des propriétés les plus intéressantes est la possibilité d’empêcher le comportement normal d’un événement à compléter.En d’autres termes, avec JavaScript, il est possible de ne montrer aucun caractère lorsqu’une touche est enfoncée, n’envoyez pas un formulaire après avoir appuyé sur le bouton d’expédition, ne téléchargez aucune page en appuyant sur un lien, etc. La méthode avancée d’empêchement d’un événement d’exécuter son action associée dépend de chaque navigateur:

// Navegadores que siguen los estandareselEvento.preventDefault();

dans le modèle d’événement de base aussi est possible d’empêcher le comportement par défaut de certains événements. Si, par exemple dans un élément <textarea> Le gestionnaire d’événements suivant est indiqué:

> Dans l’ID

Précédent ne sera pas possible d’écrire un caractère, car le gestionnaire d’événements renvoie false et c’est la valeur nécessaire pour prévenir les extrémités de l’exécution de l’événement et donc d’empêcher la lettre d’être écrite.

Donc, il est possible de définir des poignées d’événements qui renvoient ou = « 493C597F59 »>

en fonction de certains paramètres. Par exemple, un certain nombre de caractères pouvant être écrits peuvent être conçus dans un <textarea>:

function limita(maximoCaracteres) { var elemento = document.getElementById("texto"); if(elemento.value.length >= maximoCaracteres ) { return false; } else { return true; }}

<textarea onkeypress="return limita(100);"></textarea>

Le fonctionnement de l’exemple précédent est détaillé ci-dessous:

  1. l’événement onkeypress Pour contrôler si la clé est écrite ou non.
  2. La valeur renvoyée est renvoyée par la fonction externe limita() à laquelle la valeur est passé la valeur 100.
  3. si la valeur renvoyée par limita() C’est

, l’événement se produit normalement et le caractère est écrit dans <textarea>. Si la valeur renvoyée par limita() est false, l’événement ne se produit pas et le caractère n’est donc pas écrit dans le <textarea>.

  • La fonction limita() retourne ou false après avoir vérifié si le nombre de caractères de <textarea> est supérieur ou inférieur au nombre maximal de caractères qui s’est produit sous forme de paramètre.
  • l’objet event vous permet également d’arrêter complètement l’exécution du flux normal des événements:

    // Navegadores que siguen los estandareselEvento.stopPropagation();

    En empêchant le flux d’événements en attente, les événements qui restent de ce moment sont trop sollicités jusqu’à ce que tous les éléments en attente soient exécutés jusqu’à l’élément window.

    15.5 types d’événements

    La liste complète des événements pouvant être générée dans un navigateur peut être divisée en quatre grands g roupies Spécification DOM Définit les groupes suivants:

    • Evénements de la souris: Ils sont originaires de leur origine lorsque l’utilisateur utilise la souris pour effectuer certaines actions.
    • Evénements de clavier: Ils sont originaires de l’interruption de l’utilisateur. Toute clé de son clavier.
    • Evénements HTML: Ils sont originaires de leur origine lorsque des modifications se produisent dans la fenêtre du navigateur ou lorsque certaines interactions entre le client et le serveur se produisent.
    • DOM Events: Ils sont originaires de Un changement se produit dans la structure DOM de la page. Ils sont également appelés « événements de mutation ».

    15.5.1 Événements de souris

    Les événements de la souris sont, avec beaucoup de différence, le plus d’employés des applications Web. Les événements inclus dans cette classification sont les suivants:

    « 5aebc4b782 »>
    « A7565C1A49 »>
    Description click se produit lorsque le bouton gauche de la souris est enfoncé.Il se produit également lorsque l’application de l’application est située sur un bouton et appuyez sur la touche ENTER dblclick

    se produit lorsque le bouton gauche de la souris

    est enfoncé deux fois sur mousedown se produit lorsque vous appuyez sur une touche de souris mouseout Se produit lorsque le pointeur de la souris est à l’intérieur d’un élément et que l’utilisateur déplace le pointeur sur un endroit de cet élément mouseover se produit lorsque le pointeur de la souris est en dehors d’un élément et que l’utilisateur déplace le pointeur sur un endroit à l’intérieur de l’élément mouseup se produit lors de la relâche de la souris qui a été appuyé sur mousemove se produit lorsque le PULTER ou la souris est sur un élément

     »

    Tous les éléments des pages prennent en charge les événements du tableau précédent.

    15.5.1.1 Propriétés

    L’objet événement contient les propriétés suivantes pour les événements de la souris:

    • coordonnées de la souris (toutes les différentes coordonnées relatives à différents éléments)
    • La propriété type
    • la propriété srcElement (Internet Explorer) ou target (DOM)
    • Propriétés shiftKey, ctrlKey, altKey et metaKey (DOM uniquement)
    • La propriété button (seulement dans les événements mousedown, mousemove, mouseout, et mouseup)

    événements mouseover et mouseout ont des propriétés supplémentaires. Internet Explorer définit la propriété fromElement, qui fait référence à l’élément à partir duquel le pointeur de la souris a été déplacé et toElement c’est l’élément auquel Le pointeur de la souris a déménagé. De cette façon, dans l’événement mouseover, la propriété toElement est identique à srcElement et Dans l’événement mouseout, la propriété fromElement est identique à srcElement.

    .

    Dans les navigateurs prenant en charge la norme DOM, il n’y a qu’une seule propriété appelée relatedTarget. Dans l’événement mouseout, relatedTarget pointe vers l’élément auquel la souris a déplacé. Dans l’événement mouseover, relatedTarget pointe vers l’élément à partir duquel le pointeur de la souris a été déplacé.

    quand un Le bouton de la souris est enfoncé, la séquence des événements qui se produit est la suivante: mousedown, mouseup, Par conséquent, la séquence des événements nécessaires pour atteindre le double-clic devient aussi complexe que celles suivantes: mousedown, mouseup, click, mousedown, mouseup, click, = « Cee7f68663 »> .

    15.5.2 Événements de clavier

    Les événements inclus dans cette classification sont les suivants:

    est produit lorsqu’il est tiré une touche correspondant à un alphanumérique Le caractère (les tissus ne sont pas pris en compte comme SHIFT, ALT, etc.). Il se produit également continuellement si le « 5950064a9e »> est produit lorsqu’il est libéré de n’importe quelle clé pulsée

    Event Description
    keydown se produit lorsque vous appuyez sur une touche sur le clavier. Il se produit également de manière continue si le

    15.5.2.1 propriétés

    L’objet événement contient les propriétés suivantes pour les événements du clavier:

    • la propriété keyCode
    • La propriété charCode (Sun uniquement)
    • La propriété srcElement (Internet Explorer) ou target (DOM)
    • Propriétés shiftKey, ctrlKey, altKey et metaKey (Sun uniquement)

    Lorsqu’une touche est enfoncée sur un caractère alphanumérique, il se produit la séquence suivante de Événements: , keypress, keyup. Lorsqu’un autre type de clé est enfoncé, la séquence suivante se produit: , keyup. Si la clé est détenue, dans le premier cas, les événements sont répétés de manière continue /div> et

    « 4307C2BF22 »>

    et dans le second cas, répétez l’événement continuellement.

    Evénements HTML

    Les événements HTML définis sont collectés dans le tableau suivant:

    est chargé

     » E0B9E62 « >

    « E02A49EB52 »>


    fb2bd1e386 « >

    7e66fa8b9a « >

    Event Description
    load
    se produit dans l’objet de la fenêtre lorsque la page est complètement chargé. Dans l’élément `lorsque l’objet
    se produit dans l’objet de la fenêtre lorsque la page disparaît complètement (lors de la fermeture de la fenêtre du navigateur par exemple). Dans l’élément lorsque l’objet disparaît.
    abort se produit dans un élément <object> lorsque l’utilisateur arrête le téléchargement de l’élément avant qu’il ne soit terminé
    se produit dans l’objet de la fenêtre lorsqu’une erreur JavaScript se produit. Dans l’élément <img> lorsque l’image n’a pas pu être chargée complètement et dans l’élément lorsque l’élément ne charge pas correctement
    select se produit lorsque plusieurs caractères d’une zone de texte sont sélectionnés (<input> et <textarea>)
    change se produit Lorsqu’une boîte de texte (<input> et <textarea>) perdez la mise au point et son contenu varie. Il se produit également lorsque la valeur d’un élément <select>
    se produit lorsque vous appuyez sur une touche de type de soumission ( <input type="submit">)
    reset se produit lorsque vous appuyez sur Sur un bouton de type de réinitialisation (<input type="reset">)
    se produit dans l’objet de la fenêtre lorsque la fenêtre de navigateur est redimensionnée
    scroll se produit dans n’importe quel article qui a une barre de défilement, lorsque l’utilisateur l’utilise. L’élément contient la barre de défilement de la page complète
    focus se produit dans n’importe quel élément (y compris l’objet de la fenêtre) lorsque l’élément obtient le
    Se produit dans n’importe quel élément (y compris l’objet de la fenêtre) lorsque l’élément perd la mise au point

    L’un des événements les plus utilisés est l’événement load, car toutes les manipulations effectuées par DOM exigent que la page soit chargée complète et donc, l’arbre DOM a été complètement Construit.

    L’élément Définit les propriétés scrollLeft et scrollTop qui peut être utilisé avec l’événement scroll.

    15.5.4 Événements Sun

    Bien que des événements de ce type font partie du La spécification officielle du Soleil n’a pas encore été mise en œuvre dans tous les navigateurs.Le tableau suivant collecte les événements les plus importants de ce type:

    « A7565C1A49 »>

    EXERCICE 17

    Déclaration

    Exercice 18

    Déclaration de vue

    Exercice 19

    Afficher l’énoncciation

    Description
    se produit lorsque des nœuds sont ajoutés ou supprimés dans la sous-arbre d’un document ou
    DOMNodeInserted se produit lorsqu’un nœud est ajouté en tant qu’enfant à partir d’un autre nœud
    DOMNodeRemoved se produit lorsqu’un nœud est supprimé qui est enfant d’un autre nœud
    DOMNodeRemovedFromDocument se produit lorsqu’un nœud est supprimé
    se produit lorsqu’un nœud est ajouté au document

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *