Javascript 随机背景色设置间隔

Javascript 随机背景色设置间隔,javascript,Javascript,我试图将我的背景设置为三种颜色中的一种,但代码始终不起作用。我认为这背后有语法错误,但我无法调试它。怎么了 var backcolor='yellow'; window.onload = function() var x=1; setInterval( function() { document.body.style.backgroundColor = backcolor; x = Math.floor(Math.random() * 3) + 1; if (x==1) {back

我试图将我的背景设置为三种颜色中的一种,但代码始终不起作用。我认为这背后有语法错误,但我无法调试它。怎么了

var backcolor='yellow';
window.onload = function() 
var x=1;


setInterval(
function() {
document.body.style.backgroundColor = backcolor;
x = Math.floor(Math.random() * 3) + 1;
if (x==1)
    {backcolor='yellow';}
else if (x==2)
    {backcolor='orange';}
else if (x==3)
    {backcolor='red';}
}, 1000);

您的
onload
函数缺少
{
}
。应该是:

var backcolor = 'yellow';
window.onload = function () {    
    var x = 1;

    setInterval(function () {
        document.body.style.backgroundColor = backcolor;
        x = Math.floor(Math.random() * 3) + 1;
        if (x == 1) {
            backcolor = 'yellow';
        } else if (x == 2) {
            backcolor = 'orange';
        } else if (x == 3) {
            backcolor = 'red';
        }
    }, 1000);
}
请注意,如果您正确缩进代码,这种情况会更加明显。还请注意,您可以使用
x
声明将
var backcolor
变量声明移动到
onload
函数中,而无需全局声明

还请注意,通过去掉if/else结构,可以使函数更短、更整洁:

window.onload = function () {    
  var colors = ['yellow', 'orange', 'red'];

  setInterval(function () {
    document.body.style.backgroundColor =
                          colors[Math.floor(Math.random()*colors.length)];
  }, 1000);
}

演示:

您缺少window.onload=函数的开始和结束括号。看见