运行用户脚本时setInterval会崩溃我的浏览器?

时间:2013-09-27 21:30:40

标签: javascript crash setinterval userscripts

好的,所以脚本可以工作但是setInterval在30秒左右后不断崩溃我的浏览器。 至少我认为这就是发生的事情。

以下是代码:

var count = 0;

setInterval(function()
{
    var ifLose = document.getElementById('result-text').innerHTML;

    if (ifLose.length > 4) 
    {

        count++;
        document.getElementById("bet-multiplier").click();
        document.getElementById("bet-bt").click();

    }
    else 
    {
        for (count > 0; count--;) 
        {

        document.getElementById("bet-divider").click();

        }

        document.getElementById("bet-bt").click();

    }   
}, 1000);

我做错了什么? 它与count和for循环有关吗? 非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

这一行是你的问题(或者至少是问题的一个重要部分):

    for (count > 0; count--;) 

第一次运行计时器处理程序后,“count”将为-1。这个循环将持续很长时间。

你可能想要

    for (; count > 0; count--)

for循环头有三个部分:初始化,测试和......呃,第三部分,传统上你在做迭代控制,但实际上只是放置表达式的地方。您的原始代码首先包含测试表达式。这不是语法不正确,因为JavaScript只需要一个表达式,这样的比较表达式就可以了。然而,它并没有真正做任何事情。您的版本中的测试表达式为count--,这在语法上也可以,对于测试表达式来说也不是坏事。但是,因为区间处理程序永远不会将“count”重置为0,所以一旦将它递减到-1,循环就会继续运行。