Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript document.body.style.backgroundColor在while循环中不起作用_Javascript - Fatal编程技术网

JavaScript document.body.style.backgroundColor在while循环中不起作用

JavaScript document.body.style.backgroundColor在while循环中不起作用,javascript,Javascript,我使用while循环提示用户输入更改背景前景颜色,直到用户输入no。但是颜色在运行时不会更改,只有当用户说no时颜色才会更改,循环中断,而不是每次输入都会更改。因此,只有最后输入的颜色/值在页面上生效。当我在调试模式下运行它时,它工作正常 功能页_color() { 而(1) { var input1=提示(“您最喜欢的背景色是什么”); 如果(input1=='No'| | input1=='No') 打破 document.body.style.backgroundColor=输入1; v

我使用while循环提示用户输入更改背景前景颜色,直到用户输入no。但是颜色在运行时不会更改,只有当用户说no时颜色才会更改,循环中断,而不是每次输入都会更改。因此,只有最后输入的颜色/值在页面上生效。当我在调试模式下运行它时,它工作正常

功能页_color()
{
而(1)
{
var input1=提示(“您最喜欢的背景色是什么”);
如果(input1=='No'| | input1=='No')
打破
document.body.style.backgroundColor=输入1;
var input2=提示(“您最喜欢的前景色是什么”);
如果(input2=='No'| | input2=='No')
打破
document.body.style.color=input2;
}
}

单击此处更改页面的前景色和背景色
我不知道为什么您需要在页面颜色功能中使用while循环

下面的代码似乎运行得很好


功能页_color()
{
var input1=提示(“您最喜欢的背景色是什么”);
document.body.style.backgroundColor=输入1;
var input2=提示(“您最喜欢的前景色是什么”);
document.body.style.color=input2;
}
单击此处可更改页面的前景色和背景色
不管怎样,你的问题的答案是由W3schools给出的

不要过度使用此方法,因为它会阻止用户在关闭框之前访问页面的其他部分。如果用户单击“确定”,prompt()方法将返回输入值。如果用户单击“取消”,则该方法返回null

因为提示和警报语句阻塞了应用程序流,所以开发人员不使用它。(也是因为它看起来很丑)

提示的替代方案?

使用
input
字段收集用户输入数据,并添加onClick事件处理程序以运行页面颜色函数


希望这能有所帮助。

因为javascript不是多线程的,而且您的循环会阻止浏览器刷新显示。用十个字来说,就是这样。这不是你做事的正确方式。您可以使用
setTimeout
在稍后调用
page\u color
(例如500毫秒)。这将允许浏览器处理其他线程(例如刷新视图),我正在尝试解决这个问题:提示用户输入他最喜欢的背景色和前景色。接收值并应用与页面背景和前景相同的值。不断提示用户提供这些详细信息,直到用户说不。因此,提示和while是必需的。@KuljeetSidhu,但让我告诉您,
prompt
会阻止代码的流动。所以使用它不是一个明智的选择。