日期:2014-05-16  浏览次数:20363 次

setTimeout()总是提示缺少对象,请高手帮忙
下面是我打的代码 浏览器总是提示缺少对象 不知什么原因 请高手指教 如果不用setTimeout() 在外面用setInterval()就是对的 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>递归调用</title>
</head>
<script>
  fc();
  function fc(){
  var aa=document.getElementById("bb");
  var red=Math.random()*255;
  var green=Math.random()*255;
  var blue=Math.random()*255;
  aa.style.color="rgb("+red+","+green+","+blue+")";
  setTimeout("fc()",500);
  }
  
</script>
<body>

<div id="bb">JS将会随机改变这个文字的颜色</div>

</body>
</html>

------解决方案--------------------
fc();
改成
 window.onload = fc;

确保对象创建成功再调用
------解决方案--------------------
在标签<body>中加上onload事件 调用fc()函数
------解决方案--------------------
页面加载完成后再调用函数fc(); 否则var aa=document.getElementById("bb");这个元素不存在
------解决方案--------------------
探讨

fc();
改成
window.onload = fc;

确保对象创建成功再调用