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

Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
- - Dernière réponse : lesdis
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
- 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)
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
3
Merci
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      

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
3
Merci
ç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      

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
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          [
Commenter la réponse de cs_bultez
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
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é!');
}
Commenter la réponse de lesdis
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
je pense que ce sera le mieux que de repenser ma fonction :)

Merci pour ton aide
Commenter la réponse de lesdis