0

我是一个真正的Javascript/JSON noobot,所以这可能是非常明显的。我存储值在Chrome扩展JS文件chrome.storage:如何从chrome.storage中检索这个值?

chrome.storage.sync.set({'username' : username}, function() { 
    console.log('Saved',username); 
}); 
chrome.storage.sync.set({'password' : password}, function() { 
    console.log('Saved', username); 
}); 

我知道这是正确传递,因为执行console.log返回正确的价值观。

然后我尝试在我的内容脚本中检索它,但它只返回[object Object]。

chrome.storage.sync.get("username", function (username) { 
    console.log("Passed successfully: Username "+username); 
    studentUsername = username; 
}); 

chrome.storage.sync.get('password', function (password) { 
    console.log("Passed successfully: Password "+password); 
    studentUsername = username; 
}); 

我不确定它为什么这样做。

回答

4

是的,它总是返回一个对象。您必须从该对象访问该属性。

chrome.storage.sync.get("username", function (obj) { 
    console.log("Passed successfully: Username "+obj.username) 
    studentUsername = obj.username; 
}); 
+1

相关API:https://developer.chrome.com/extensions/storage#method-StorageArea-get – Teepeemm

+0

** BIG RED SCARY警告:**异步回调中分配的结果到一个变量,并希望它会工作[可能导致问题](https://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron )。 – Xan

+0

@Xan在这里没有这种情况 –