我在background.js有這樣的:使用getBackgroundPage()給我:對象[對象]窗口有沒有方法 'getFromStorage'
var write = function (line) {
if (localStorage["silent"] == true) {
chrome.extension.getBackgroundPage().console.log(line);
} else {
alert(line);
}
}
var getFromStorage = function (item, default) {
if (localStorage[item] == undefined) {
write("Could not find " + item + " in local storage...");
return default;
} else {
return localStorage[item];
}
}
var isOn = getFromStorage("isOn", true);
var silent = getFromStorage("silent", false);
這在我popup.js:
var bgPage = chrome.extension.getBackgroundPage();
var isOn = bgPage.getFromStorage("isOn", true);
var silent = bgPage.getFromStorage("silent", false);
而且我得到這個錯誤:
Object [object Window] has no method 'getFromStorage'
幫助是極大的讚賞,感謝:)
終止是'getFromStorage'變量在全球層面定義的?改爲使用'window.getFromStorage = ...'。 (另外,爲什麼您使用的'getBackgroundPage()'在後臺頁面本身?) – pimvdb
要注意的是,'default'保留,你不應該/不能使用它作爲參數 – C5H8NNaO4
@pimvdb是第一件事情, getFromStorage是全球性的,只要它在後臺頁面中,我想,所以我只會嘗試一下你的建議。顯然,我不能在後臺頁面中使用getBackgroundPage而無法使用console.log,而我知道這並不合理,但我該怎麼辦? 編輯:顯然背景頁面中的東西不是全球性的,所以我不能那樣做。 –