如何将chrome扩展名限制为一个标签?

时间:2014-02-18 22:37:21

标签: javascript google-chrome tabs

我有一个随机bing搜索的扩展程序。

chrome.browserAction.onClicked.addListener(function(){   
var a = Math.floor((Math.random()*100)+1);
chrome.tabs.update(tabId,{'url': "http://www.bing.com/search?q=" + a});

var x = 0;
var intervalID = setInterval(function(){

    a = Math.floor((Math.random()*100)+1);
    chrome.tabs.update({'url': "http://www.bing.com/search?q=" + a});

    // how many times it should work 
    if(++x === 7){
        window.clearInterval(intervalID);
    }
},5000); // this is the delay, in milliseconds

});

问题是这会在当前标签上进行搜索。因此,如果我切换标签或打开一个新窗口,它会在我当前的标签上进行搜索。我希望它继续在它开始的标签上。

我的解决方案是将tabId传入chrome.tabs.update。但是,我遇到的问题是我无法弄清楚如何获取上一个选项卡的tab.id.我该如何解决这个问题?

感谢您的帮助!

---我的尝试修复:

var tabId;

chrome.tabs.query(
  {currentWindow: true, active : true},
  function(tabArray){
    tabId = tab.id;
  }
);

chrome.browserAction.onClicked.addListener(function(){   
var a = Math.floor((Math.random()*100)+1);
chrome.tabs.update(tabId,{'url': "http://www.bing.com/search?q=" + a});

var x = 0;
var intervalID = setInterval(function(){

    a = Math.floor((Math.random()*100)+1);
    chrome.tabs.update(tabId,{'url': "http://www.bing.com/search?q=" + a});

    // how many times it should work (after the first one initially
    if(++x === 3){
        window.clearInterval(intervalID);
    }
},5000); // this is the delay

});

0 个答案:

没有答案