数组长度未定义为base64编码

时间:2016-02-19 07:53:44

标签: javascript

<!DOCTYPE html>
<html>
<body>
<div id="question_set"><img class="centre" id="question" src=""></div>

<script>
var questionImages = [  "data:image/jpeg;base64,/9j/4AAQS..."
];

document.addEventListener('DOMContentLoaded', function() {
    for (var i = 0; i < questionImages.length; i++) {
        setTimeout(function(){
            document.getElementById("question").src = questionImages[i];
        }, 1500);
    }
}, false);
</script>

</body>
</html>

网站基本上会在超时后切换照片 当我使用document.getElementById(&#34; question&#34;)。src = questionImages [0];,
我可以设置图片了 但是当我使用带有array.length的循环时,
它显示错误:在控制台中找不到文件

base64编码为long?

1 个答案:

答案 0 :(得分:0)

变量'i'的值在setimeout执行时发生变化。一种方法是重构代码,如下所示。无论何时想运行代码,都要将DOMContentLoaded更改为。

var questionImages = [  "data:image/jpeg;base64,/9j/4AAQS..."
], i=0, interval;

document.addEventListener('DOMContentLoaded', function() {
  interval = setInterval(update,1500);
}, false);

function update(){
    if(i<questionImages.length)
        document.getElementById("question").src = questionImages[i++];
    else
        clearInterval(interval);
}