Bloquer l'execution d'une fonction dans l'attente d'une interaction utilisateur

Résolu
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020 - 23 nov. 2006 à 14:46
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020 - 23 nov. 2006 à 16:04
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 nov. 2006 à 15:10
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      
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 nov. 2006 à 15:46
ç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      
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 nov. 2006 à 15:01
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          [
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
23 nov. 2006 à 15:28
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é!');
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
23 nov. 2006 à 16:04
je pense que ce sera le mieux que de repenser ma fonction :)

Merci pour ton aide
0
Rejoignez-nous