切换chrome标签并每5秒刷新一次 - javascript

时间:2016-06-23 15:47:22

标签: javascript jquery google-chrome google-chrome-extension

我正在尝试使用Chrome标签API构建Chrome扩展程序,该标签API会循环浏览窗口中的所有打开标签,并每隔n秒刷新一次。我无法每5秒钟迭代一次for循环。我已经尝试了几种不同的设置超时的方法,但是我要么完全没有运行循环,要么我得到一个无限循环。我是javascript的新手。任何帮助将不胜感激!

background.js

chrome.browserAction.onClicked.addListener(function(tab) {
  // Send a message to the active tab
  chrome.tabs.query({currentWindow: true}, function(tabs) {
    var foundSelected = false;
      (function switch() {
        for(i = 0; i <= tabs.length; i++){
          if(i == tabs.length){
            i = 0;
          }
          if (tabs[i].active){
            foundSelected = true;
          }
            // Finding the next tab    
          else if (foundSelected){
            // Selecting the next tab.
            chrome.tabs.update(tabs[i].id, {active: true});
            chrome.tabs.reload(tabs[i].id);
            setTimeout(switch, 5000);
          }
        }
      })();


    // var activeTab = tabs[0];
    chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"});
  });
});

content.js

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if( request.message === "clicked_browser_action" ) {

      chrome.tabs.update(tabId, {selected: true});
    }
  }
);

我意识到已经有扩展器可以做到这一点。我正在创建自己的学习经验和更多的功能控制。

2 个答案:

答案 0 :(得分:0)

创建如下所示的background.js。我thnik它会正常工作。

background.js

/* Below code start background.js when you start your browser
 * and sw function work after every 5 second and reload every tab. 
 */
function sw()
{
   chrome.tabs.query({currentWindow: true},function(tabs){
     var i=0;
     console.log(tabs.length);
     for(i=0;i<=tabs.length;i++)
     {
         chrome.tabs.reload(tabs[i].id);
     }

   })
};
setInterval(sw,5000);

答案 1 :(得分:0)

这是可行的解决方案。

<button type="button" class="your_class center-block"> Book </button>