IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

question sur evenements et detecter l'ajout de contenu sur une page


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    sans emploi
    Inscrit en
    Mars 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2025
    Messages : 7
    Par défaut question sur evenements et detecter l'ajout de contenu sur une page
    Bonjour,

    je me forme un peu au Javascript.

    j'avais 2 questions svp.

    la 1ere : je dois implementer un evenement clic et un evenement double clic sur un <li>

    je me dis que j'ai 2 solutions,
    soit je modifie les elements pour que une partie de la ligne soit concernée par le clic et l'autre par un double clic
    soit j'utilise un setTimeout pour me permettre de distinguer l'element clic du double clic?

    c'est bien ça?


    la 2eme question :
    je me trouve depuis quelques temps à l'etranger.
    un ami m'a demandé de lui prendre rdv sur une plate forme d'une administration.
    en faisant des recherches, j'ai lu que tous les rendez vous sont recuperes à l'aide de script puis revendus au détail à prix d'or.

    je me dis que ces scripts ne doivent pas etre legaux meme si je pense avoir eu de la pub sur ça un jour en lancant une video sur une plateforme
    je m'initie en ce moment aux requetes post et get en javascript et en essayant de lier ce genre de programme à ce que je vois en javascript, comment le script perçoit que des rdv sont proposés?

    j'espere ne pas dire trop de bétises
    est ce que c'est en lançant des requetes à intervalle regulier pour lire la propriete last-modified du headers?
    est ce que c'est aussi en recherchant une classe ou un id qui se trouverait sur la page une fois que les reservations seraient ouvertes?

    voilà juste un peu de curiosité pour avancer dans ma reflexion....

    Merci

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 571
    Par défaut
    pour la 2e question, il y a 2 possibilités
    • soit l'administration autorise l'automatisation des rendez-vous et elle vous fournira une API ou d'autres explications pour le faire.
    • soit elle ne l'autorise pas et dans ce cas, nous ne vous aiderons pas sur ce forum à contourner cette autorisation.


    pour la 1re question, avez vous essayé l'évènement dblclick ?
    https://developer.mozilla.org/fr/doc...dblclick_event
    tous les évènement fournissent des informations sur l'élément qui est concerné. donc cela permet de faire la différence entre une zone qui sert aux clics et une autre qui sera seulement utilisée avec des doubles clics.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    sans emploi
    Inscrit en
    Mars 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2025
    Messages : 7
    Par défaut
    Bonjour mathieu,

    merci pour ton aide

    j'ai mon <li>
    si je rattache 2 evenements à l'element li; un clic ou un double clic, je ne pourrais pas avoir le resultat attendu sur le double clic car le programme executera toujours la fonction lié au clic simple.

    <li><x>.....<x>.....<y>...</y></li>
    et ecouterpar exemple l'evenement clic sur le <x> et le dblclick sur le <y> ?


    pour ma 2eme question,
    je ne recherche ni le gain ni l'illegalité

    la personne m'a demandé de lui prendre un rendez vous car on lui a dit qu'ils etaient mis en ligne tard et que je veille tard.


    comme j'en suis dans mon apprentissage en JS aux promesses, fetch pour faire des get et des post, je me demandais de facon generale comment un script peut detecter du nouveau contenu sur un site tiers, via les infos contenu dans un headers ou à la recherche d'une classe sur une page.

    j'ai ete transparent sur ce qui a fait que je me pose cette question, s'il n'est pas possible d'avoir des elements, je comprendrai.

    j

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 571
    Par défaut
    si vous voulez attraper le double clic sur y, vous pouvez écouter l'évènement directement sur cette balise y comme cela :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <li id="id1">
    	<x>xxx</x>
    	<y>yyy</x>
    </li>
     
     
    <script>
    "use strict";
     
     
    document.addEventListener("DOMContentLoaded", e => {
            
            document.getElementsByTagName("x")[0].addEventListener("click", e => {
                    console.log("un clic sur x");
            });
            
            document.getElementsByTagName("y")[0].addEventListener("dblclick", e => {
                    console.log("un double clic sur y");
            });
            
    });
     
     
    </script>

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    sans emploi
    Inscrit en
    Mars 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2025
    Messages : 7
    Par défaut
    Bonjour mathieu,

    Merci pour l'exemple.

    donc je dois modifier le html pour pouvoir écouter les 2 evenements, elles ne peuvent pas porter sur le même élément à moins de passer par un setTimeout()

  6. #6
    Membre expérimenté
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 450
    Par défaut
    Citation Envoyé par sarc20 Voir le message
    donc je dois modifier le html pour pouvoir écouter les 2 evenements, elles ne peuvent pas porter sur le même élément à moins de passer par un setTimeout()
    Pas exactement. Cela n'est vrai que si ces deux événements sont un clic et un double-clic. Rien ne t'empêche d'associer une fonction à un clic et une autre à un clic droit par exemple (événement contextmenu).

    Cordialement.

    P.S. Explication sur ce qu'est réellement un "double clic" pour JS selon MSN :
    « dblclick se déclenche après deux évènements click (et, par extension, après deux paires d'évènements mousedown et mouseup). »

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    sans emploi
    Inscrit en
    Mars 2025
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2025
    Messages : 7
    Par défaut
    Bonjour domi65,

    oui je n'ai pas été précis, je parlais bien des 2 évènements clic et dblclick que je ne peux utiliser sur le même élément.

    Merci

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    effectivement lors d'un double clic les deux événements click sont déclenchés donc on a click → click → dblclick.

    Comme tu l'as pressenti il faut, lors d'un dblclick annuler l'action sur le click et cela peut se faire via un setTimeout.

    Voici une façon de faire en gérant les actions simple et double clic dans la même fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    /**
     *  fonction unique de prise en compte du simple et du double clic
     */
    function clickHandler(e) {
      const DELAY_MS = 350;  // peut dépendre de la vitesse du double-clic paramétrée
      // le nombre de clics courant est dans la propriété detail
      // traitement simple click
      if (1 === e.detail) {
        // diffère l'action sur simple click
        e.target._timeout = setTimeout(() => {
          // exécution action sur simple clic
          console.log("Exécute function sur simple click");
        }, DELAY_MS);
      }
      // traitement double click
      else if (2 === e.detail) {
        // supprime appel function sur simple click
        clearTimeout(e.target._timeout);
        // exécution action sur double clic
        console.log("Exécute function sur double click");
      }
    };
    // affectation fonction
    const element = document.querySelector(".area-clic");
    element.addEventListener("click", clickHandler);

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 909
    Par défaut
    Salut,

    Apparemment quand on veut gérer à la fois le simple et le double clique, on doit accepter qu'il y ait un retard dans la gestion du simple clique (qui est de 350 ms dans le code proposé par NoSmoking)...

    Il se peut que ce "retard" pose problème dans certains cas mais je ne vois pas comment l'éviter (on peut juste éventuellement le diminuer)...

Discussions similaires

  1. question sur une page de module
    Par kate59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/09/2011, 19h08
  2. [phpMyAdmin] question sur une ligne à ajouter à ma base de données
    Par jsdar dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/04/2007, 11h13
  3. [Newbies] Question sur une technologie XML a utiliser
    Par superraider dans le forum Windows
    Réponses: 3
    Dernier message: 21/10/2005, 10h01
  4. [jdbc] question sur une connection
    Par berg dans le forum JDBC
    Réponses: 2
    Dernier message: 10/09/2005, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo