检查选项卡是否存在并使其激活;否则创建它

时间:2015-11-13 20:15:12

标签: javascript google-chrome-extension

我正在尝试查看标签“http://google.com”是否存在。如果是,那么我想让它成为活动页面。否则,选项卡“http://google.com”不存在,我想创建它。

backround.js

chrome.runtime.onMessage.addListener(function(response, sender, sendResponse){
    chrome.tabs.create({'url': 'http://google.com'}, function(tab) {
        alert('Tab Created ' + tab.id);
        var oms = tab.id;
        chrome.tabs.update(oms, {url:"http://en.wikipedia.org"});
    });
});

这会创建网页,获取tabid并将tabid设置为变量。

1 个答案:

答案 0 :(得分:1)

您当前的尝试似乎是尝试使用Google创建标签,然后将其导航到维基百科。这与您的初始段落不一致。相反,我认为你想要类似于以下内容:

chrome.runtime.onMessage.addListener(function(response, sender, sendResponse){
    chrome.tabs.query({'url': 'http://google.com'}, function(tabs) {
        if ( tabs.length > 0 ) {
            chrome.tabs.update(tabs[0].id,{'active':true});
        } else {
            chrome.tabs.create({'url':'http://google.com'});
        }
    });
});

请注意,这不会找到http://www.google.comhttp://google.com/otherstuff。您可能想要使用match pattern

您评论将标签更新为selected时遇到问题。 documentation表示不推荐使用selected,而是highlighted。这也暗示了其他可能发生的事情:highlighted标签不一定是活动的(具体来说,您可以有多个标签highlighted)。