javascript - 检查选项卡是否存在并使其处于事件状态;否则创建它

标签 javascript google-chrome-extension

我正在尝试查看选项卡“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 。您可能想要使用 match pattern .

您评论说在更新要选择的选项卡时遇到问题。 documentation表示已弃用 selected,取而代之的是 highlighted。这也暗示了可能发生的其他情况:突出显示选项卡不一定处于事件状态(具体来说,您可以有多个突出显示选项卡)。

关于javascript - 检查选项卡是否存在并使其处于事件状态;否则创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33701053/

相关文章:

javascript - 如何将 Chrome 存储数据放入变量中?

javascript - 在循环中分配事件监听器时出现问题 - javascript

google-chrome-extension - 从缓存中检索页面时,不会触发 chrome.tabs.onUpdated.addListener

javascript - ng-angular 重复过滤器等于和不等于

javascript - 如何在 React 组件中订阅 Redux 操作

javascript - 正则表达式 javascript,为什么点和逗号匹配\

javascript - 单击时 chrome.notifications.create() 给出了错误的 id

javascript - Highcharts 从数据库访问所有记录

javascript - .on ("drag", function()) 和 .on ("contextmenu", function()) 在同一代码上使用时不起作用

google-chrome - 使用命令行启用/禁用谷歌浏览器扩展