setInterval在文本区域上设置文本

时间:2013-12-16 02:53:23

标签: javascript timer setinterval

我正在取一个textarea内部的字符串,通过分隔符“===== \ n”将其拆分为数组,然后每250ms在textarea内打印出该数组的每个索引。问题是,每当我点击开始所有这一切的按钮时,网页似乎都会冻结。

我是JS的新手,非常感谢任何建议/帮助。

这是我尝试过的。

setInterval调用的方法:( theStage是textarea)

function start(){
var frames = theStage.value.split("=====\n");
    while(true){
        for(var i = 0; i < frames.length; i++){
            theStage.value = frames[i];
        }
    }
} 

计时器:

function changeFrame(){
    var time = setInterval(start, 250);
}

1 个答案:

答案 0 :(得分:1)

您不需要while(true) ...您的setInterval会为您调用该功能。尝试在没有while循环的情况下运行它。

更新:

根据您的上述评论,您尝试每250ms跳过一次数组。 要实现这一点,您需要使用setTimeout!

以下是:

function start(){

    var frames = theStage.value.split("=====\n");
    var i = 0, l = frames.length;
    (function iterator() {
        theStage.value = frames[i];

        if(++i<l) {
            setTimeout(iterator, 250);
        }
    })();
};

start();
相关问题