我在chrome上写了一个小扩展,我正在尝试使用chrome.storage。 在我的选项页面上,我保存了一些我将在content_script上获得的信息:
在options.js
function save_options() {
var color = document.getElementById('color').value;
chrome.storage.sync.set({
favoriteColor: color
}, function() {
console.log("Color saved");
});
}
但我在content_script.js
上使用此信息时遇到问题。我试过了:
var color = null;
chrome.storage.sync.get('favoriteColor', function(item){
color = item.favoriteColor;
//alert(color); //Here works;
});
alert(color); // here doesn't work
答案 0 :(得分:0)
chrome.storage API 是异步的,意味着即使在定义变量颜色之前它也会执行警报,这就是为什么你总是得到未定义的。您需要等到 get 方法完成。您可以在content_script.js中设置一个仅在定义颜色后执行的回调函数:
var color = null;
chrome.storage.sync.get('favoriteColor', function(item){
color = item.favoriteColor;
alertColor(color);
});
function alertColor(color){
alert(color);
}