2013-02-28 3 views
0

Quelqu'un pourrait-il me dire pourquoi ce code ne clignote pas la couleur de fond de ma page Web entre les deux couleurs.Couleur de fond de la page Web flash

<script type="text/javascript"> 
function blinkit() { 
    intrvl = 0; 
    for (nTimes = 0; nTimes < 3; nTimes++) { 
     intrvl += 1000; 
     setTimeout("document.bgColor='#0000FF';", intrvl); 
     intrvl += 1000; 
     setTimeout("document.bgColor='#FFFFFF';", intrvl); 
    } 
} 
</script> 
+1

Il travaille pour moi dans Firefox. Peut-être parce que vous n'appelez pas la fonction 'blinkit()'? – showdev

+1

où appelez-vous 'blinkit'? Tout ce que vous avez montré est la fonction en cours de définition, pas appelée. – BLSully

+0

Appel blinkit() dans le corps – user182

Répondre

0

Essayez ceci:

function blinkit() { 
    intrvl = 0; 
    window.setInterval(function(){ 
     intrvl += 1000; 
     setTimeout("document.bgColor='#0000FF';", intrvl); 
     intrvl += 1000; 
     setTimeout("document.bgColor='#FFFFFF';", intrvl); 
    }, intrvl); 
} 
0

Ne jamais passer des chaînes à setTimeout, car il est tout aussi mauvais que eval.

Au lieu de cela, essayer quelque chose comme ceci:

function blinkit(times, thenwhat) { 
    var toggle = times*2, timer = setInterval(function() { 
      document.body.style.backgroundColor = toggle%2 ? "#0000FF" : "#FFFFFF"; 
      toggle--; 
      if(!toggle) { 
       clearInterval(timer); 
       thenwhat && thenwhat(); 
      } 
     },1000); 
    return timer; 
} 
var flashy = blinkit(3); 
// The background will flash three times. 
// You can also cancel it with `clearInterval(flashy);` 

Avec le code ci-dessus, vous pouvez aussi lui dire de faire quelque chose quand il est fait:

var flashy = blinkit(3,function() {alert("Hello!");});