2012-07-24 148 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