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 :

Simuler le click d'un bouton en injectant des coordonnées dans une fonction


Sujet :

JavaScript

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut Simuler le click d'un bouton en injectant des coordonnées dans une fonction
    Bonjour a tous
    je cherche le moyen de cliquer n'importe ou dans le body et que ca me renvoie le nom ou id du bouton qui se trouve dans les coordonnées x y
    j'ai trouver cela dans la faq et un peu partout
    mais je ne sais pas comment le faire fonctionner
    dans cet exemple j'ai deux bouton
    le bouton a cliquer et le bouton qui appelle la fonction pour cliquer sur le premier en injectant des coordonnées
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <!doctype html>
    <html>
    <head>
    <script>
    function evenement(xx,yy){
    oEvent = document.createEvent( "MouseEvents" );
    oEvent.initMouseEvent(
      "click",    // le type d'événement souris
      true,       // est-ce que l'événement doit se propager (bubbling) ?
      true,       // est-ce que le défaut pour cet événement peut être annulé ?
      window,     // l' 'AbstractView' pour cet événement
      1,          // details -- Pour les événements click, le nombre de clicks
      1,          // screenX
      yy,          // screenY
      xx,          // clientX
      1,          // clientY
      false,      // est-ce que la touche Ctrl est pressée ?
      false,      // est-ce que la touche Alt est pressée ?
      false,      // est-ce que la touche Shift est pressée ?
      false,      // est-ce que la touche Meta est pressée ?
      0,          // quel est le bouton pressé
      target      // l'élément source de cet événement
    );
    //target.dispatchEvent( oEvent );
    target.fireEvent( "onclick" );
    }
    </script>
    </head>
    <body style="margin-left:0;padding-top:0;border:1px solid red;">
    <button onclick="alert('Clicked')" id="btn">vrai bouton</button>
    <button style ="position:absolute;top; 500;" onclick="evenement(10,23)" id="btn2">clique sur le vrai  bouton</button>
    <script>
    evenement ("btn");
    </script>
    </body>
    </html>
    si quelqu'un a une idée je suis preneur
    tout ce qui compte c'est le fait que le bouton est inconnu(plusieurs bouton ajouter dynamiquement DOM) seules les coordonnées doivent donner ou non un bouton cliqué

    ps: pour Ie 9 a IE 11
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

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

    Dans ce fil Cliquer sur une position X Y il y a une réponse au sujet d'une fonction...

    J'ai testé ici : http://jsbin.com/nozuhakuza/edit?html,output en utilisant :

    onclick="document.elementFromPoint(10, 23).click();"

    Avec Firefox et IE 8 ça marche apparemment...

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonsoir beginner je te remercie pour ta réponse
    je connaissais pas cet api je vais essayer avec IE car la destination de cet exercice est un composant Webbrowser.ocx dans VB utilisant les librairie IE9

    je reviens après test
    merci a toi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    De rien ! J'ai aussi testé IE 8 (je n'ai pas la version 9) et ça marche aussi...

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    c'est bien ce que je pensais ca fonctionne pas vraiment
    tiens teste ce code tu verra j'ai ajouté le message et des div
    en fait tout se met en vert
    et en plus mes div se placent pas comme il faut !
    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
    <html>
    <head>
    <title>Exemple d'utilisation d'elementFromPoint</title>
    <script type="text/javascript">
    function changeColor2(newColor)
    {
     elem = document.elementFromPoint(600,2);
     elem.style.color = newColor;
    alert(elem.id)
    }
    </script>
    </head>
    <body style="width100%;height:100%">
    <p id="para1">Un peu de texte ici</p>
    <div id="div1" style="postion:'absolute';left:200px,top:150px;width:50px;height:40px;border:1px solid red;float:left"> div1</div>
    <div id="div1" style="postion:absolute;left:300px,top:80px;width:50px;height:40px;border:1px solid red;float:left"> div1</div>
    <div id="div1" style="postion:absolute;left:500px,top:250px;width:50px;height:40px;border:1px solid red;float:left"> div1</div>
    <div id="div1" style="postion:absolute;left:600px,top:350px;width:50px;height:40px;border:1px solid red;float:left"> div1</div>
    <p id="para1">encore un peu de texte ici</p>
    <p id="para1">encore un peu de texte ici</p>
    <p id="para1">encore un peu de texte ici</p>
    </br>
    <button onclick="changeColor2('green');">vert</button>
    </body>
    </html>
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    J'ai testé et ça marche, regarde ici : http://jsbin.com/jovunetage/edit?html,console,output

    Seul le texte de la troisième div passe au vert...

    Alors le problème c'est les coordonnées, à (600,2) cela renvoi un élément nul donc ça foire... mais à 127,55 c'est bon.

    J'ai ajouté l'affichage des coordonnées pour voir...

    J'ai vu sur site qu'avec IE les coordonnées fonctionnent pas pareil, je vais chercher le lien ...

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    J'ai changé car tu as mis le même texte et le même id pour chaque div : http://jsbin.com/jovunetage/edit?html,console,output

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    ok visiblement ca fonctionne mais saurais tu me dire pourquoi mes divs se placent comme ca il ne devraient pas puisque position absolute
    il faudrait éventuellement ajouter une condition sur le null
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    C'est ce que j’essaie de comprendre aussi, c'est vraiment étrange, ça doit être un truc tout bête mais ça m’échappe aussi !

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ah oui tu as écrit : "postion", il manque un i

    Et moi j'ai copié/collé ton code...

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Il y a aussi des quottes que j'ai enlevées pour la première div et apparemment il faut mettre des points-virgules à la place des virgules...

    Teste ici : http://jsbin.com/miqubizixe/edit?html,output

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    puré ya des jours ou je ferais mieux d'arrêter d'arrêter moi je plombe dessus depuis le debut

    puré de puré de puré !!!!!!!
    je te remercie je vais étudier ca moi aussi et mettre ca au propre et trouver comment tester le null

    un grand merci a toi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Il faudrait un EDI qui détecte ce genre de chose pour nous, c'est une des choses qui me déroute avec javascript surtout quand on a fait avant du Java avec Eclipse...

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    J'ai testé le null ici : http://jsbin.com/kodomecofu/1/edit?html,console,output, on a null avec (600,2)

    Si tu mets par exemple (500,2) cela point sur html donc tout se met en vert normal...

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    oui des fois je suis surpris de la limite ou de la puissance de javascript

    bon tiens le voila au propre et j'ai toujours pas mes divs en places c'est vraiment bizarre encore un truc qui doit m'échapper
    chose aussi surprenante le bouton lui au moins devrait être bien placé et bien non!
    bon je suis crevé peut être que demain je verrais plus clair

    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
    26
    27
    28
    29
    30
    31
    32
    33
    <html>
    <head>
    <title>Exemple d'utilisation d'elementFromPoint</title>
    <meta http-equiv="X-UA-Compatible" content="IE=10">
    <script type="text/javascript">
     
    function changeColor2(newColor)
    {
     elem = document.elementFromPoint(127,55);  
     elem.style.color = newColor;
     alert(elem.id);
    }
    function OnMouseMove (event) {
     
      var xy = document.getElementById ("xy");  
      xy.innerHTML = event.clientX + ", " + event.clientY;
      }</script>
    </head>
    <body  style="padding-top:0;margin-top:0;margin-left:0;"onmousemove="OnMouseMove (event);">
     <div id="corps" style="padding-top:0;margin-top:0;left:0px,top:0px;width:100%;height:75%;border:1px solid blue;">
    <div id="div1" style="position:absolute;left:200px,top:150px;width:50px;height:40px;border:1px solid red;"> div1</div>
     
    <div id="div2" style="position:absolute;left:300px,top:80px;width:50px;height:40px;border:1px solid red;"> div2</div>
     
    <div id="div3" style="position:absolute;left:500px,top:250px;width:50px;height:40px;border:1px solid red;"> div3</div>
     
    <div id="div4" style="position:absolute;left:600px,top:350px;width:50px;height:40px;border:1px solid red;"> div4</div>
      <div>
    <button onclick="changeColor2('green');">vert</button>
    <p id="xy">xy</p>
     
    </body>
    </html>
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Nos messages se sont croisés, regarde mon message précédent...

    Sinon là cela ne marche pas car tu as encore mis des virgules :

    <div id="div1" style="position:absolute;left:200px,top:150px;width:50px;height:40px;border:1px solid red;"> div1</div>

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    oui j'ai vu que l'on s'est croisé je suis aller voir et récupérer le test sur null

    puré les virgule je suis vraiment fatigué

    je crois qu'il est temps d'aller me coucher moi
    bon c'est bon j'ai fait les testes en modifiant les cordonnée ca rend bien

    bien plus pratique finalement que selection pour les élément de type div,img etc....

    je te remercie pour ton aide
    je regarderais plus en détail demain pour l'heure dodo

    merci
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ok bonne nuit...

    J'ai testé ici http://jsbin.com/yipototoma/1/edit?html,output dans le cas où les coordonnées pointent sur la balise html et ça met évidement tout en vert donc si tu ne souhaites pas cela il faudra en plus de null tester html, body...

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour beginner
    me voila un peu plus reveillé

    visiblement je n'arrive pas a injecter les coordonnées
    sans doute un soucis de syntaxe encore
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <html>
    <head>
    <title>Exemple d'utilisation d'elementFromPoint</title>
    <meta http-equiv="X-UA-Compatible" content="IE=10">
    <script type="text/javascript">
     
    function changeColor2(newColor,a,b)
    alert(a);
    var xx=a;
    var yy=b;
    {
     elem = document.elementFromPoint(xx,yy);   
     
      if(elem === null){
        alert("null !!!");
        return;
      }     
        else {
           elem.style.color = newColor;
           var msg = "balise : " + elem.tagName + "  id = " + elem.id
           alert(msg);
        }
    }
    function OnMouseMove (event) {
     
      var xy = document.getElementById ("xy");  
      xy.innerHTML = event.clientX + ", " + event.clientY;
      }</script>
    </head>
    <body  style="padding-top:0;margin-top:0;margin-left:0;"onmousemove="OnMouseMove (event);">
     
    <div id="div1" style="position:absolute;left:200px;top:150px;width:50px;height:40px;border:1px solid red"> div1</div>
     
    <div id="div2" style="position:absolute;left:300px;top:80px;width:50px;height:40px;border:1px solid red"> div2</div>
     
     
    <div id="div4" style="position:absolute;left:600px;top:350px;width:50px;height:40px;border:1px solid red"> div4</div>
     <div id="div3" style="position:absolute;left:500px;top:250px;width:50px;height:40px;border:1px solid red"> div3</div>
     
    <button onclick="changeColor2('green',225,175);">vert</button>
    <p id="xy">xy</p>
     
    </body>
    </html>
    une idéee?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    sans doute un soucis de syntaxe encore
    non, je pense plutôt à un soucis de sommeil encore une fois ;-)
    regardez où est l'accolade d'ouverture de la fonction changeColor2

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/04/2015, 15h23
  2. Réponses: 6
    Dernier message: 18/12/2006, 15h49
  3. Réponses: 4
    Dernier message: 18/01/2006, 11h21
  4. Insertion des boutons et des images dans une JTable
    Par anouar dans le forum Composants
    Réponses: 2
    Dernier message: 17/11/2005, 20h23
  5. [VB.NET] fonction qui injecte du html dans une zone précise
    Par denisvignes dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/10/2005, 09h33

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