JavaScript document.body.style.backgroundColor在while循环中不起作用
我使用while循环提示用户输入更改背景前景颜色,直到用户输入no。但是颜色在运行时不会更改,只有当用户说no时颜色才会更改,循环中断,而不是每次输入都会更改。因此,只有最后输入的颜色/值在页面上生效。当我在调试模式下运行它时,它工作正常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
功能页_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
会阻止代码的流动。所以使用它不是一个明智的选择。