DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques au WEB / Fonctions diverses WEBDEV
  • Mécanisme de propagation des événements dans un navigateur
  • Cas particuliers
  • Différences entre les fonctions Evénement et JSEvénement
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Associe une procédure navigateur à un événement sur un objet en code navigateur.
Cette fonction demande au navigateur d'intercepter un événement sur la page en cours ou un élément de la page en cours. Lorsque l'événement survient sur l'objet spécifié, une procédure WLangage spécifique est automatiquement exécutée. Pour mettre fin à la gestion de l'événement, il faut utiliser la fonction JSFinEvénement.
Exemple
// Intercepte tous les clics sur la page
nClicPage est un entier
nClicPage = JSEvénement(Proc_ClicPage, jsEvénementBody, jsEvénementClic)
Syntaxe
<Résultat> = JSEvénement(<Procédure WLangage> , <Objet cible> , <Evénement> [, <Options>])
<Résultat> : Entier
  • Identifiant de l'événement,
  • 0 en cas d'erreur.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage à lancer lors de l'interception de l'événement.
Cette procédure peut être une procédure navigateur globale au projet ou une procédure navigateur locale à la page qui contient le code en cours d'exécution.
Cette procédure doit être de la forme :
PROCEDURE ProcédureGestionEvénement(pclEvenementJS est un objet dynamique)
Lors de l'appel, le paramètre pclEvenementJS sera initialisé avec l'objet JavaScript de l'événement navigateur. Il s'agit du même objet que celui qui est manipulé ou renvoyé par la fonction JSInfoEvénément.
<Objet cible> : Chaîne de caractères ou Constante de type Entier
Elément sur lequel l'événement doit être géré.
Les valeurs possibles sont :
  • L'une des constantes suivantes :
    jsEvénementBodyL'événement est branché sur la balise BODY de la page HTML.
    jsEvénementDocumentL'événement est branché sur le document (Objet "document" du DOM).
    jsEvénementFormL'événement est branché sur le formulaire courant.
    jsEvénementWindowL'événement est branché sur la fenêtre (Objet "window" du DOM).
  • Une chaîne de caractères spécifiant un des objets DOM (Document Object Model).
  • Une chaîne de caractères spécifiant l'ID de l'une des balise HTML de la page.
  • L'alias d'un champ de la page (propriété Alias)
<Evénement> : Variant
Nom de l'événement à intercepter.
Cette valeur peut être :
  • une chaîne de caractères qui indique le nom de l'événement.
  • une constante prédéfinie :
    jsEvénementBeforeUnloadL'événement est déclenché avant le déchargement de la page.

    Remarque : Il est possible de proposer à l'internaute de quitter la page en utilisant le code :
    JSInfoEvénement("returnValue") = "Message"
    RENVOYER "Message"

    Le navigateur affichera alors le message avec deux boutons "Quitter la page" et "Rester sur la page" (ou une variation selon le navigateur utilisé).
    jsEvénementBlurL'événement est déclenché lorsque l'objet cible perd le focus.
    jsEvénementChangeL'événement est déclenché à chaque modification de l'objet cible.
    jsEvénementClicL'événement est déclenché par un clic sur l'objet cible.
    jsEvénementDoubleClicL'événement est déclenché par un double clic sur l'objet cible.
    jsEvénementFocusL'événement est déclenché lorsque l'objet cible prend le focus.
    jsEvénementGestureChangeL'événement est déclenché lorsque l'utilisateur change le zoom de l'écran avec ses doigts (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementGestureEndL'événement est déclenché lorsque l'utilisateur arrête le zoom de l'écran avec ses doigts (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementGestureStartL'événement est déclenché lorsque l'utilisateur débute le zoom de l'écran avec 2 doigts (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementKeyDownL'événement est déclenché lorsqu'une touche est enfoncée.
    jsEvénementKeyPressL'événement est déclenché lorsqu'une touche est enfoncée puis relâchée.
    jsEvénementKeyUpL'événement est déclenché lorsqu'une touche est relâchée.
    jsEvénementLoadL'événement est déclenché à la fin du chargement du formulaire HTML.
    jsEvénementMouseDownL'événement est déclenché lorsqu'un bouton de la souris est enfoncé.
    jsEvénementMouseEnterL'événement est déclenché lorsque le curseur de la souris entre dans la surface de l'objet cible. Cet événement concerne uniquement l'objet cible.
    jsEvénementMouseLeaveL'événement est déclenché lorsque le curseur de la souris sort de la surface de l'objet cible. Cet événement concerne uniquement l'objet cible.
    jsEvénementMouseMoveL'événement est déclenché à chaque déplacement de la souris.
    jsEvénementMouseOutL'événement est déclenché lorsque le curseur de la souris sort de la surface de l'objet cible. Cet événement concerne l'objet cible ou un de ses fils.
    jsEvénementMouseOverL'événement est déclenché lorsque le curseur de la souris entre dans la surface de l'objet cible. Cet événement concerne l'objet cible ou un de ses fils.
    jsEvénementMouseUpL'événement est déclenché lorsqu'un bouton de la souris est relâché.
    jsEvénementOrientationChangeL'événement est déclenché lorsque l'orientation du support change (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementTouchCancelL'événement est déclenché lorsque l'utilisateur annule l'action réalisée avec son doigt : affichage du menu contextuel par exemple (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementTouchEndL'événement est déclenché lorsque l'utilisateur enlève son doigt de l'écran pour finir une action sur l'écran (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementTouchMoveL'événement est déclenché lorsque l'utilisateur déplace son doigt sur l'écran (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementTouchStartL'événement est déclenché lorsque l'utilisateur touche son écran avec un ou 2 doigts (événement géré lors d'un affichage sur un téléphone par exemple).
    jsEvénementResetL'événement est déclenché lors d'un clic sur un bouton de type "Reset".
    jsEvénementResizeL'événement est déclenché quand la fenêtre change de taille.
    jsEvénementScrollL'événement est déclenché à chaque scrolling de la fenêtre du navigateur.
    jsEvénementSelectL'événement est déclenché lors de la sélection de l'objet cible.
    jsEvénementSubmitL'événement est déclenché lors d'un clic sur un bouton de type "Submit".
    jsEvénementUnloadL'événement est déclenché au déchargement du formulaire HTML (fermeture du navigateur ou navigation vers une autre page).
<Options> : Combinaison optionnelle de constantes de type Entier
Sens d'interception de l'événement.
En code navigateur, un événement peut être intercepté au moment de la capture, ou de la remontée. Ce paramètre permet d'indiquer à quel moment la fonction de traitement de l'événement sera appelée.
Les valeurs possibles sont :
jsEvénementBubbleLa fonction de traitement est appelée lors de la remontée de l'événement dans l'objet cible.
jsEvénementCapture
(Valeur par défaut)
La fonction de traitement est appelée lors de la capture de l'événement par l'objet cible.
Remarques

Mécanisme de propagation des événements dans un navigateur

Les événements qui peuvent survenir dans une page Web et être interceptés par la fonction JSEvénement circulent dans deux directions à travers les différents éléments composant la page Web :
  • La phase de capture
    Dans cette phase, l'événement (un clic souris par exemple) est transmis à tous les éléments de la page dans l'ordre suivant :
    • la fenêtre,
    • le document,
    • le formulaire HTML,
    • les différents conteneurs (cellules) du plus extérieur au plus intérieur,
    • le champ.
    Pour intercepter l'événement lors de cette phase, il faut utiliser la constante jsEvénementCapture.
  • La phase de remontée (également appelée bubble)
    L'événement est propagé aux mêmes éléments que lors de la phase de capture mais dans l'ordre inverse.
Si le traitement de l'événement est interrompu pendant la phase de capture (à l'aide de la fonction JSInterruptionEvénement), la phase de remontée sera exécutée à partir de l'élément en cours de traitement au moment de l'appel de la fonction JSInterruptionEvénement.
Si le traitement de l'événement est interrompu pendant la phase de remontée, les éléments parents de l'élément en cours de traitement ne recevront pas l'événement.

Cas particuliers

  • Certains noms d'événements sont différents selon les navigateurs. Si l'événement est donné par nom, il faut faire attention à ce que le nom soit valide pour le navigateur de l'internaute. Pour cette raison, il est recommandé d'utiliser les constantes du WLangage qui seront interprétées automatiquement en fonction du navigateur.
  • Si l'objet cible est un champ, il est nécessaire de donner son alias (propriété Alias) en paramètre à la fonction JSEvénement et non pas son nom.

Différences entre les fonctions Evénement et JSEvénement

  • Au contraire de la fonction Evénement, utilisée pour capturer des événements sous Windows, les événements navigateur sont propagés à tous les éléments de la page Web concernée dans deux directions (voir ci-dessus).
  • La procédure appelée n'a pas le même prototype que celui de la fonction Evénement.
  • Les objets cibles génériques (utilisant la notation "*") de la fonction Evénement ne sont pas gérés.
Liste des exemples associés :
Détection des touches saisies Exemples unitaires (WEBDEV) : Détection des touches saisies
[ + ] Détection de la touche frappée au clavier (événement OnKeyDown) .
Cette fonctionnalité est mise en place dans un jeu de mots-croisés.
Composante : WDJS.DLL
Version minimum requise
  • Version 15
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale