Это самая раздражающая проблема, с которой я когда-либо сталкивался:
var appslst = [];
function f1()
{
chrome.management.getAll(function(lst)
{
appslst = lst;
});
}
function f2() // this function isn't working!!
{
var l = appslst.length;
var ind = 0;
while(ind < l)
{
document.getElementById("here").value = document.getElementById("here").value.concat(String(ind), ". ", appslst[ind].name, "\n");
ind += 1;
}
}
function f3()
{
f1();
f2();
}
Я считаю, что appslst
- поскольку это глобальная переменная - должна быть видна в обеих функциях f1()
и f2()
,но приведенный выше код не работает, и я понятия не имею, почему.
Кроме того, я попробовал следующий код (и он работает):
var appslst = [];
function f1()
{
chrome.management.getAll(function(lst)
{
appslst = lst;
var l = appslst.length;
var ind = 0;
while(ind < l)
{
document.getElementById("here").value = document.getElementById("here").value.concat(String(ind), ". ", appslst[ind].name, "\n");
ind += 1;
}
});
}
Еще несколько деталей.Я учусь, как создать расширение для Google Chrome.Я скачал образец: http://code.google.com/chrome/extensions/examples/extensions/app_launcher.zip по этой ссылке: http://code.google.com/chrome/extensions/samples.html. Я просмотрел код и нашел тот же код, который я написал, за исключением того, что он работает!
Вотчасть, о которой я говорю:
function onLoad()
{
chrome.management.getAll(function(info)
{
var appCount = 0;
for (var i = 0; i < info.length; i++) {
if (info[i].isApp) {
appCount++;
}
}
if (appCount == 0) {
$("search").style.display = "none";
$("appstore_link").style.display = "";
return;
}
completeList = info.sort(compareByName);
onSearchInput();
});
}