Partage
  • Partager sur Facebook
  • Partager sur Twitter

De variable locale à globale + setInterval

Sujet résolu
    6 novembre 2010 à 2:10:00

    Bonjour à tous,

    Je travaillais sur les setInterval, donc j'ai décidé de créer une page offrant 3 boutons
    Le premier demande le choix de la chaine de caractères à répéter (Choix de nom)
    Le deuxième commence (ou recommence) l'apparition du message désigné à chaque 25ms, à la condition que la valeur ne soit pas nulle ou de "" ou de " " [mais bon, ca me tente pas d'aller vers les regex xD]
    Le troisième permet à l'apparition de messages de s'arrêter n'importe quand, que ce soit après 3 recommencements ou au premier...

    Toutefois, tout ceci ne fonctionne pas...
    Premièrement, j'aimerais faire passer ma variable locale de la function choix() [var message] à la function commencer()
    De plus, je ne sais pas comment permettre au bouton arrêt de réarrêter la function lorsqu'on la fait recommencer (donc au 2e tour après un 1er arrêt)
    :(


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Essai</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
       </head>
      
       <body>
    
       <script type="text/javascript">
     
     function choix()
     {
    	var message = prompt('Que désirez-vous voir écrit des milliers de fois ?');
    	return message;
     }
     
     
       function commencer()
       {
       
       
       if(message != NULL || message !="" || message !=" ")
       {
       
    var x = setInterval(function(){
    document.getElementById('storage3').innerHTML+="<b>" + message + "</b><br>";
    }, 25);
    	}
    	
    else
    {
    	alert('Veuillez choisir la chaîne de caractères à retranscrire avant')
    }
    
    	}
    	
    function arreter()
    {
    	clearInterval(x);
    }
    </script>
    
    <form name="form1" method="post" action="">
    
    
    <input type="button" name="Submit" value="Choix de nom" onClick="choix()">
    <input type="button" name="Submit" value="Commencer" onClick="commencer()">
    <input type="button" name="Submit" value="Arrêter" onClick="clearInterval(x)">
    
    
    
        </form>
    	
    <div id="storage3"></div> <br /><br />
    
    
    
    
       </body>
    </html>
    


    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      6 novembre 2010 à 2:21:47

      Dans la configuration actuelle de ton code, il faut que les variables message et x soient globales.

      Attention à l'écriture de null (tout en minuscules).

      Ton return dans la fonction choix() ne sert strictement à rien... :euh:

      Dans ta condition, il faut utiliser && et non pas ||, puisque tu veux que le message n'ait pas la valeur null , ET pas non plus la valeur "" ET pas non plus la valeur " " .

      Ton code ressemble donc maintenant à ça :

      var message = null, x;
      
      function choix() {
          message = prompt('Que désirez-vous voir écrit des milliers de fois ?');
      }
      
      
      function commencer() {
      
      
          if (message != null && message != "" && message != " ") {
      
              x = setInterval(function () {
                  document.getElementById('storage3').innerHTML += "<b>" + message + "</b><br>";
              }, 25);
          }
      
          else {
              alert('Veuillez choisir la chaîne de caractères à retranscrire avant')
          }
      
      }
      
      function arreter() {
          clearInterval(x);
      }
      
      • Partager sur Facebook
      • Partager sur Twitter

      De variable locale à globale + setInterval

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown