Modifier l'arrière-plan de couleur entre le rouge et le vert à chaque seconde

Je suis en train de faire une page web changer la couleur de fond de chaque seconde à l'aide de JavaScript.
Je suis en utilisant setTimeout mais je ne peux pas comprendre comment obtenir ma variable à modifier dans la fonction. Voici mon code:

 <!DOCTYPE html>
 <html>
     <head>
         <script type="text/javascript">
         function changecolors() {
             x = 1; //<-- I know this is wrong, I just don't know where to place it 
             var t = setTimeout("change()", 1000);
         }
         function change() {
             while(x < 3) {
                 if(x = 1) {
                     color = "red";
                     x++;
                 } else if (x = 2) {
                     color = "green";
                     x = 1;
                 }
                 document.body.style.background = color;
             }
         }
     </head>
     <body onload="changecolors()">
     </body>
 </html>
ramener blink! 😛
est modifier() censé appeler changecolors() pour l'installation de l'appel suivant de nouveau, ou est-il appelé à partir d'un autre endroit?? sinon sa n'arrive qu'une fois
Il ya tout à fait quelques choses de mal dans votre code: (a) les variables de fuite dans la portée globale. (b) Vous avez une boucle infinie (x sera toujours inférieur 3). (c) l'affectation au lieu de comparer. (d) Vous appelez la fonction après une seconde, pas toutes les secondes.
Ce n'est pas le code, c'est juste une mok jusqu'j'ai fait pour montrer ce que j'essayais de faire.
merci beaucoup pour cette réponse! Fait monter!

OriginalL'auteur Justin Yoder | 2011-11-23