我试图抓住当前窗口的所有标签并循环显示它们。
目前正在使用代码:
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;
});
});
但这会引发同样的错误。有什么想法吗?
答案 0 :(得分:4)
基于承诺的方法仅在使用browser.*
命名空间而不是chrome.*
时在Firefox中有效
Chrome本身并不为其API提供Promise,但如果您愿意,可以使用Mozilla has a polyfill。
您的第一个代码段是正确的,不会抛出此错误。请务必检查tabs.query
的所有调用并正确重新加载扩展程序,以便更改要应用。