chrome.tabs.query(object)与定义不匹配

时间:2017-08-30 10:09:09

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

我试图抓住当前窗口的所有标签并循环显示它们。

目前正在使用代码:

chrome.tabs.query({currentWindow: true}, function(result) {
    result.forEach(function(tab) {
        do stuff here;
    });
});

我拥有'标签'在清单中。

抛出错误:&#34;错误:调用表单tabs.query(object)不匹配定义tabs.query(对象queryInfo,函数回调)在...&#34; < / p>

我很困惑,因为我清楚地有对象和回调函数。我还在其他地方看到它可以通过承诺来完成:

var query = chrome.tabs.query({currentWindow: true});
query.then(function(tabs) {
    tabs.forEach(function(tab) {
        do stuff here;
    });
});

但这会引发同样的错误。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

基于承诺的方法仅在使用browser.*命名空间而不是chrome.*时在Firefox中有效

Chrome本身并不为其API提供Promise,但如果您愿意,可以使用Mozilla has a polyfill

您的第一个代码段是正确的,不会抛出此错误。请务必检查tabs.query 的所有调用并正确重新加载扩展程序,以便更改要应用。