检查选项卡是否存在并使其处于活动状态;否则创建它

Check if tab exists and make it active; otherwise create it

本文关键字:活动状态 创建 选项 是否 存在 检查      更新时间:2023-09-26

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

回合.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设置为变量。

您当前的尝试似乎是尝试使用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.com 或 http://google.com/otherstuff。 您可能需要使用匹配模式。

您评论说,在将选项卡更新为selected时遇到问题。 文档说selected已被弃用,取而代之的是highlighted。 这也暗示了可能还发生了什么:highlighted选项卡不一定处于活动状态(具体来说,您可以highlighted多个选项卡(。