0
這是我有史以來所面臨的最惱人的問題:爲什麼我的全局變量不被另一個函數看到?
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
- 因爲它是一個globla變量 - 應該在這兩個功能可見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();
});
}
那麼爲什麼樣本的代碼是woking?注意'completeList'也是一個全局變量。感謝您的幫助:) – joker
如果您的意思是最後一個代碼示例 - 它們也在傳遞給'getAll'的函數中進行迭代,並且當時您想要迭代的數據可用。 – pimvdb
只有2個最後的問題:1.如果我想將數據複製到全局變量,我應該怎麼做? 2.有什麼鏈接可以學到更多? – joker