2012-07-24 66 views
0

我正在创建一个Chrome扩展,并且需要使用间隔。javascript:setInterval执行不停止

间隔每次都会关闭的时间由用户自己选择。

该函数在每个打开的选项卡上执行并向其发送数据。

我的问题是,“计时器”dosn't像它应该工作,它只是一次执行一次像一个正常的while循环。

下面是代码:

chrome.tabs.query({}, function (tabs) { 
//the times the code need to run is by the amount of tabs that is open 
     setInterval(function() { 
      if (i < tabs.length) { 

       chrome.tabs.sendRequest(tabs[i].id, { input: "uCanSend", 

        userName: myName, 
        password: myPass, 

        subject: mySubject, msg: myMsg, 

        linkName1: myLinkName1, 
        linkURL1: myLinkURL1, 

        linkName2: myLinkName2, 
        linkURL2: myLinkURL2 

       }, function (response) { }); 

      } 
      i++; 
     }, timeInMintus //the time that the code need to run every time); 
    }); 

我不知道我做错了。 任何想法如何解决它,它会正确运行?

(对不起我的英语)

回答

2

的第二个参数需要在毫秒(千分之一秒)。基于变量名称,它看起来像你正在传递分钟。例如,如果你想在回调为每分钟运行:

setInterval(function() { /* snip */ }, 1000*60); 
+0

我要求用户输入一个数字,我做chossenTime * 1000和pess它然后timeInMintus – samy 2012-07-24 17:56:52

+0

那么什么值'timeInMintus'? – 2012-07-24 17:57:13

+0

timeInMintus = choosenTime * 1000 – samy 2012-07-24 17:57:34

0

铬排队的setTimeout/setInterval的不活动标签页调用和改变minimal timeout length

+0

但我从背景页面运行此代码到选项卡(内容脚本) – samy 2012-07-24 18:14:16