我有以下javascript代码,我正在尝试在Google Chrome和Internet Explorer上运行它,但两者都得到一个空白页面。我无法理解脚本中的错误是什么? 请告诉我它有什么问题。
<!DOCTYPE html>
<html>
<head>
<title>Changing Background Color</title>
</head>
<body>
<script type= "text/javascript">
document.write( "test run");
var colors={"red","orange","green","blue","brown","purple","gray","white"}
var index=0;
function changecolor()
{
for(index=0;colorindex<colors.length;index++)
{
document.bgcolor=colors[index];
}
}
function startchange()
{
setinterval("changecolor()",3000);
}
window.onload=startchange();
</script>
</body>
</html>
答案 0 :(得分:1)
一个小错字,而不是bgcolor
它应该是bgColor
希望它有所帮助.. :)
答案 1 :(得分:1)
一些拼写错误和语法错误,其中您使用错误类型的括号数组,
var colors = ["red", "orange", "green", "blue", "brown", "purple", "gray", "white"], // array literal
index = 0;
function changecolor() {
for (index = 0; index < colors.length; ++index) { // fix typo
document.bgColor = colors[index]; // typo
}
// are you sure you wanted this loop and not to do something like
// document.bgColor = colors[++index % colors.length];
// ?
}
function startchange() {
setInterval(changecolor, 3000); // typo, pass function in directly
}
window.onload = startchange; // set function, not invoke function
此外,您的for
循环将比人类看到的更快地应用更改,您确定要进行此行为吗?请参阅上面的评论,了解您的意图
答案 2 :(得分:1)
document.write()
会覆盖当前文档,因此您的所有JavaScript都会丢失。删除它,或改为使用alert()。
答案 3 :(得分:0)
您的代码存在一些语法问题。
首先,您需要从"
中删除引号(()
)和setInterval
并将I
大写。
setInterval(changecolor, 3000);
setInterval
函数有两个参数:一个回调函数(可以是一个局部变量,如changecolor
函数)和一个数字(间隔的毫秒数)。
您还需要使用[
和]
而不是{
和}
正确声明您的数组。此外(尽管没有必要)在声明的末尾加上;
。
var colors = ["red", "orange", "green", "blue", "brown", "purple", "gray", "white"];
正如Tarun Gaba指出的那样,您应该使用bgColor
代替bgcolor
。