为什么setTimeout()函数只运行一次?

时间:2010-12-24 04:03:57

标签: javascript bookmarklet

我正在制作一个javascript书签,定期调整所有图像的大小。

javascript: function x(){
    for(i=0;i<=document.getElementsByTagName('img').length;i++)
        document.getElementsByTagName('img')[i].width+=1;
};
t = window.setTimeout("x()",100);
void(0);

但它只运行一次。这有什么问题?

6 个答案:

答案 0 :(得分:30)

您是否正在寻找setInterval()而不是setTimeout()

t = window.setInterval("x()",100);

答案 1 :(得分:0)

为了清晰起见,这是相同的代码缩进

function x() {
    for(i=0;i<=document.getElementsByTagName('img').length;++)
        document.getElementsByTagName('img')[i].width+=1;
};
t = window.setTimeout("x()",100);
void(0);

window.setTimout()只执行一次传递的代码,因为它意味着。如果要更频繁地执行代码,请使用window.setInterval()。

答案 2 :(得分:0)

你的for循环结尾不应该是i++吗?

答案 3 :(得分:0)

还有语法错误。

为(I = 0; I&LT = document.getElementsByTagName( 'IMG')长度;的 i ++在

答案 4 :(得分:0)

你需要把......

t = window.setTimeout("x()",100);

在函数x()括号{}内,它适用于SetTimeout()

function x() {
    for(i=0;i<=document.getElementsByTagName('img').length;i++)
        document.getElementsByTagName('img')[i].width+=1;

t = window.setTimeout("x()",100);
};

    x();

void(0);

只有在页面上加载了所有图像或出现错误后才能调用x()。

答案 5 :(得分:-2)

可能是window.setTimeOut("x",100)

修改:更正此window.setTimeout(x,100)的答案。

PS:如果您只使用IDE,会发生什么。