我使用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,但我不知道该怎么做。救命。

最佳答案

方法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});
});


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

09-25 16:47
查看更多