Bloquer l'execution d'une fonction dans l'attente d'une interaction utilisateur [Résolu]

Signaler
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
-
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
-
Bonjour,

J'aimerais faire une pause dans une fonction tant que l'utilisateur n'a pas interagit avec la page web comme le fait ce petit bout de code :

if(confirm("ce choix vous convient?"))
{x++;}

Est il possible d'arriver au meme resultat que la fonction confirm() en créant un div avec des boutons nous meme? (personellement je n'aime pas du tout la boite de dialogue confirm et j'aimerais m'en affranchir)

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
je ne sais pas si j'ai été très clair....

         avant :

function reponse...
{
 ...traitements...
 if confirm
  traitement si oui
  traitement si non
}






      à remplacer par :




ou tout autre chose que img
 Bul      
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
ça ne change rien ( ou tellement peu ) au problème....
certaines boucles doivent/peuvent être revues,
certaines variables doivent/peuvent être globales
   ou passées à l'appel de la fonction "récursive" ( i,node...)
<hr />
                                    Cordialement                         Bul      
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

>>Est il possible d'arriver au meme resultat que la fonction confirm()
>>en créant un div avec des boutons nous meme?









ben oui,

à la place du if(confirm....

   montrer le div caché ( style.display= "inline", qui était mis "none" au départ )
   et... ne plus rien faire dans la fonction
   le div contient des boutons "accepter" et "refuser" qui sur le onclick
      font appel à des fonctions javascript, qui ferotn ce qu'elles ont à faire
      et entr'autres cacher le div.




<hr />
                                       Cordialement                         Bul          [
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
Je suis d'accord avec ta réponse qui peut etre une solution dans certains cas, malheuresement mon bout de code se situe dans une fonction récursive et j'aimerais qu'elle s'arrete de s'executer jusqu'au moment ou l'utilisateur repond.
Tout ceci afin de garder les variables locale de ma fonction mere

Je continue de chercher dans mon coin et au pire je referais toute ma fonction.... (qui de toute facon fait un peu mal a la tete )

code (il s'agit d'une fonction de recherche a l'interieur d'un treeview) :

function recherche(name){

    function cherche(obj,txt){
    var i = 0;

        while (obj.nodes[i]) // on scanne tous les noeud
        {
            if (obj.nodes[i].id == txt) // on verifie
            {
                reponse = obj.nodes[i];
                gotFocus(obj.nodes[i]); //fonction permettant de donner le focus a l'élément.
                var b = recursive(obj.nodes[i].parents); // on lance la fonction recursive pour scanner tous les noeuds
             
                function recursive(node){ // on ouvre tous les noeud parents jusqu'a la racine
                    if (node.parents.num != undefined)
                         recursive(node.parents);
                    else if(node.isExpand == false)
                        node.click(); //fonction permettant d'ouvrir le noeud

                node.click(); //fonction permettant d'ouvrir le noeud
                }

           if (confirm("ce choix vous convient?")) // si le noeud correspond a celui rechercher par l'utilisateur on stop, sinon on continue                 {return "stop";}
               
            }

            if(obj.nodes[i].nodes[0]) var a= cherche(obj.nodes[i],txt);
            if (a=="stop") {return "stop";}
            i++;
        }
    }

var reponse = cherche(tree,name);

if (reponse != "stop")
    alert('le noeud "' + name + '" n\'a pas été trouvé!');
}
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
je pense que ce sera le mieux que de repenser ma fonction :)

Merci pour ton aide