<html>
<head>
<title>图像自动切换</title>
<script type="text/javascript">
setInterval("loadImage()",3000);
var images=['01.jpg','02.jpg','03.jpg','04.jpg','05.jpg'];
var i=0;
function loadImage()
{
i++;
if(i==5)
i=0;
var oImage=document.getElementById('image');
var oLabel=document.getElementById('info');
oImage.src='images/'+images[i];
oLabel.innerText=images[i];
}
</script>
</head>
<body>
当前图像名:<label id="info"></label>
<p></p>
<img src="images/01.jpg" id="image" width="320" height="240" alt="正在加载">
<script type="text/javascript">
var oLabel=document.getElementById('info');
oLabel.innerText=images[i];
</script>
</body>
</html>
请问上述代码的执行顺序是如何的 先执行head里的js然后生成body内的html?再调用了setInterval方法后body内的html还再重新生成吗?
先加载完 body 中的 HTML后才加载独立存储的、当前文档引用的JS 文件并执行当前文档内嵌的JS;调用setInterval()方法只是改变一个DOM 元素的一个属性,不用重新生成HTML 的。
在你想知道顺序的地方加一个alert。
都知道第一张图是01.jpg,干嘛不直接在label写呢,如果不写就像佛本慈悲所说的加onload事件:<body onload="document.getElementById('info').innerText=images[i];">
先执行head里的js然后生再执行body的html。但执行head里的js只不过是语句,而不是函数,函数也要出发才会执行。像你这里估计js是在执行body后执行的,因为都是函数,而setInterval也是3秒后才让函数loadmage执行。