JavaScript定时图像交换需要帮助吗

JavaScript定时图像交换需要帮助吗,javascript,image,Javascript,Image,所以在我的剧本里我有 <script type="text/javascript"> var images = new Array(); var numImages = 3; var index = 0; function setupSwapper() { for (i = 0; i < numImages; i++) { images[i] = new Image(266, 217); images[i].src = "images/

所以在我的剧本里我有

<script type="text/javascript">
var images = new Array();
var numImages = 3;
var index = 0;

function setupSwapper() {
    for (i = 0; i < numImages; i++) {
        images[i] = new Image(266, 217);
        images[i].src = "images/image" + i + ".png";
    }
    setTimeout("swapImage()", 5000);
}

function swapImage() {
    if (index >= numImages) {
        index = 0;
    }
    document.getElementById('myImage').src = images[index].src
    index++;
    setTimeout("swapImage()", 5000);
}
</script>

var images=新数组();
var numImages=3;
var指数=0;
函数setupSwapper(){
对于(i=0;i=numImages){
指数=0;
}
document.getElementById('myImage').src=images[index].src
索引++;
setTimeout(“swapImage()”,5000);
}
然后我有
来设置身体

以及我文档中的其他位置

仅显示初始图像(image0.png)。我可能因为看了这么久而失明了。图像未交换。

使用或类似工具调试正在进行的操作:

  • imgdom元素实际上是否更改了src
  • 您是否看到任何网络活动试图加载图像?它成功了吗
  • 在代码中设置断点,并查看调试器中发生了什么
顺便说一句-您可以使用setInterval而不是setTimeout-它设置了一个重复计时器

您缺少了“setupSwapper”定义中的
()

它也是
setTimeout
,而不是
setTimeout

最后,去掉
标记上的“type”属性


您可能希望从1开始“索引”,而不是从0开始。

方法:

  • 设置超时(swapImage,5000)
  • [忘记]类型属性与此无关
  • [忘记]索引与此无关
  • [可选]从图像中删除“名称”属性(无用)
  • [可选]关闭图像标签,如

  • 注:2-5是关于正确性。只有第一个对于让它工作很重要。

    get,使用它的调试器在swapImage中放置断点,以查看它是否在超时后被命中。另一种方法是使用API查看正在发生的事情(例如console.log)。

    很抱歉,这两种都是打字错误。不幸的是,我希望它能这么简单。我将在中编辑它。Pointy:(你为什么删除你的评论?)嗯,也许你可以指向一个例子,或者Firefox源代码中的相关部分,因为它很愚蠢。类型属性是HTML4规范的一部分,尽管它被大多数浏览器忽略(属性而不是内容)。原因是他们更信任内容类型头而不是脚本的类型属性。这就是为什么他们从HTML5规范中删除了它。但是它不会导致错误,并且是有效的(X)HTML!HTML 4中的
    标记不应该有
    结束标记(“结束标记:禁止”),或者在XHTML中应该是自动关闭的