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

Ste*_*ton 3 javascript tabs google-chrome google-chrome-extension

我正在尝试获取当前窗口的所有选项卡并循环浏览它们。

当前使用的代码:

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

我在清单中具有“标签”的权限。

它引发错误:“错误:表单tabs.query(object)的调用与定义tabs.query(object queryInfo,function callback)在...不匹配。”

我很困惑,因为我显然拥有对象和回调函数。我还在其他地方看到,可以用一个诺言来代替它:

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

但这会引发相同的错误。有任何想法吗?

Xan*_*Xan 5

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

Chrome本身并未为其API提供Promises,但如果您愿意,Mozilla 也提供了polyfill

您的第一个代码段是正确的,不会引发此错误。确保检查所有调用,tabs.query 并正确地重新加载扩展以使更改生效。