Javascript 使用While循环更改背景颜色

Javascript 使用While循环更改背景颜色,javascript,Javascript,我写了一段代码,这样chrome会出现一个提示,询问颜色,使用循环,它会不断询问并不断更改颜色,直到给出一个空字符串。如果环被取出,它会改变颜色,但随着环添加到背景中,颜色不会改变。是否有我遗漏的逻辑错误 let empty=false; while(empty===false){ const colour= prompt("Give me a colour"); document.body.style.backgroundColor=colour; if(colour===""){

我写了一段代码,这样chrome会出现一个提示,询问颜色,使用循环,它会不断询问并不断更改颜色,直到给出一个空字符串。如果环被取出,它会改变颜色,但随着环添加到背景中,颜色不会改变。是否有我遗漏的逻辑错误

let empty=false;
while(empty===false){
  const colour= prompt("Give me a colour");
  document.body.style.backgroundColor=colour;
  if(colour===""){
    empty=true;
  }
}

JavaScript阻止文档的重新绘制

在JS完成之前(直到
color
),浏览器将没有机会更新显示以反映您对DOM所做的更改

您不能对此使用
while
循环。而是递归地使用
setTimeout

函数更新\u后台(){
const color=提示(“给我一个颜色”);
document.body.style.backgroundColor=颜色;
if(颜色){
设置超时(更新背景);
}
}
更新_background()