Javascript chrome.windows.getAll()未定义?
我想为google chrome/chrome编写一个扩展(一个会话管理器,它比图库中已有的功能和吸引眼球的功能更多) 但我无法使以下代码正常工作:Javascript chrome.windows.getAll()未定义?,javascript,google-chrome,google-chrome-extension,chromium,Javascript,Google Chrome,Google Chrome Extension,Chromium,我想为google chrome/chrome编写一个扩展(一个会话管理器,它比图库中已有的功能和吸引眼球的功能更多) 但我无法使以下代码正常工作: function list_session() { var list = []; chrome.windows.getAll( {"populate" : true}, function (window_list) { for(window in window_list) { list.concat(window.tab
function list_session() {
var list = [];
chrome.windows.getAll(
{"populate" : true},
function (window_list) {
for(window in window_list) {
list.concat(window.tabs);
}
}
);
console.log(list);
return list;
}
这是一个使用GoogleAPI的相当简单的例子,但是我得到的不是一个标签列表,而是“未定义”的值。此外,窗口列表似乎是空的
我目前正在Ubuntu 10.10下运行Chromium7.0.517.44(64615)。我也尝试过谷歌官方发布的chrome浏览器,结果也一样
API文档可在此处找到:
phineas假设您在清单中声明了
选项卡
权限,则此代码存在几个问题:
函数将返回空列表,因为您在回调函数中修改了列表,chrome可以在您的list\u session()
console.log(list)15分钟后调用该函数代码>和
。您需要更改程序结构以改用回调返回
方法不修改原始数组concat
- 不建议使用中的
运算符在数组中循环,因为它可能返回的不是您期望的结果
function list_session(callback) {
chrome.windows.getAll({populate : true}, function (window_list) {
var list = [];
for(var i=0;i<window_list.length;i++) {
list = list.concat(window_list[i].tabs);
}
console.log(list);
if(callback) {
callback(list);
}
});
}
//usage
list_session(function(tab_list) {
//use array of tabs
});
函数列表\u会话(回调){
chrome.windows.getAll({populate:true},函数(窗口列表){
var列表=[];
对于(var i=0;i