chrome tab焦点索引API

时间:2014-06-27 13:27:23

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

我使用chrome api标签一次打开多个链接。

但问题是最后一个链接打开(或焦点)。

$scope.data = [{
    "url":"http://www.google.com"
},{
    "url":"http://www.bing.com"
},{
     "url":"http://www.yahoo.com"
}];

angular.forEach($scope.data, function(data){
    chrome.tabs.create({
        url: data.url
    });
});

不适合进行预留循环,因为标签的排列会混乱。我想我应该使用这个https://developer.chrome.com/extensions/tabs#method-update,但我不知道该怎么做。帮助

1 个答案:

答案 0 :(得分:1)

方法chrome.tabs.create允许您指定新选项卡是否应变为活动状态。下面是一个示例代码,用于保持几个打开的选项卡中的第一个处于活动状态:

for (var i=0; i<urlArray.length; i++) {
  chrome.tabs.create({
        url: urlArray[i],
        active: i==0
    }); 
}

以上是在Xan的建议之后写的;随后是chrome.tabs.update的旧版本。


update方法也可用于更改活动标签:

chrome.tabs.update(id, {active: true});

激活具有给定ID的标签。仅供演示,以下内容适用于您的代码:

chrome.tabs.query({url: $scope.data[0]}, function(tabsArray) {
  chrome.tabs.update(tabsArray[0].id, {active: true});  
});

但最好在创建标签时记录标签ID,而不是稍后查询标签ID。为此,您需要使用chrome.tabs.create命令提供回调函数,该命令将接收已创建选项卡的参数,包括其ID。