chrome.tabs.query(对象)与定义不匹配
2017-08-30
7277
我试图抓取当前窗口的所有选项卡并循环遍历它们。
当前使用代码:
chrome.tabs.query({currentWindow: true}, function(result) {
result.forEach(function(tab) {
do stuff here;
});
});
我拥有清单中“tabs”的权限。
它抛出了错误:“错误:表单 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;
});
});
但这会引发相同的错误。有什么想法吗?
1个回答
基于 Promise 的方法仅在 Firefox 中使用
browser.*
命名空间而不是
chrome.*
时才有效。
Chrome 本身不为其 API 提供 Promises,但 Mozilla 有一个 polyfill (如果您愿意)。
您的第一个代码片段是正确的,不会抛出此错误。请确保检查所有
tabs.query
调用
并正确重新加载扩展
以应用您的更改。
Xan
2017-08-30