无法从 Chrome 存储中存储和检索
Can't Store and Retrieve From Chrome Storage
首先,如果这个问题听起来与其他问题相似,我深表歉意。我做了很多研究,我想我无法拼凑出我的情况和其他人对此有的问题 API。
我正在创建一个 chrome 应用程序,它基本上演示了从 Chrome 存储 API 存储和检索数据的能力。一旦我习惯了这样做,我就可以在我正在制作的更大的应用程序中实现它。
但是,我似乎无法使用基本应用程序。这是相关代码:
"storage.js"
function Store(key,data) {
console.log("Data: " + data);
chrome.storage.local.set({ key: data }, function () {
console.log("Secret Message Saved!");
});
}
function Retrieve() {
chrome.storage.local.get(function (data) {
console.log("The data stored is:" + data);
});
}
"master.js"(主脚本)
var myKey = "secretMessage";
var myData = "Pssst!";
Store(myKey, myData);
Retrieve(myKey);
console.log("Done!");
我很茫然。我得到的输出是:
Data: Pssst!
Done!
Secret Message Saved!
The data stored is:[object Object]
看来我存储错误或检索错误。
我查看了文档。也许我只是不理解 API 的概念以及它能够存储和检索的内容。我对使用 javascript 语言进行编码还很陌生。任何帮助将不胜感激!
谢谢!
首先,
chrome.storage.local.set
& chrome.storage.local.get
是异步方法,你必须等到 chrome.storage.local.set
存储数据,然后你应该调用 chrome.storage.local.get
.
其次,
chrome.storage.local.get
正在返回一个对象。您可以使用 .toString()
或 JSON.stringify(data)
查看对象
function Store(key,data, callback) {
console.log("Data: " + data);
chrome.storage.local.set({ key: data }, function () {
console.log("Secret Message Saved!");
callback(true);
});
}
function Retrieve(success) {
chrome.storage.local.get(function (data) {
console.log("The data stored is:" + JSON.stringify(data));
});
}
var myKey = "secretMessage";
var myData = "Pssst!";
Store(myKey, myData, Retrieve);
console.log("Done!");
我用过这个回调方法没有问题。
function loadSelectedStyle(){
chrome.storage.local.get('defaultColorSet', function (result) {
console.log(result.defaultColorSet);
defaultColors(result.defaultColorSet);
});
}
如果你只写'result'到控制台日志,你可以看到整个对象,通过将键添加到结果你得到数据。
首先,如果这个问题听起来与其他问题相似,我深表歉意。我做了很多研究,我想我无法拼凑出我的情况和其他人对此有的问题 API。
我正在创建一个 chrome 应用程序,它基本上演示了从 Chrome 存储 API 存储和检索数据的能力。一旦我习惯了这样做,我就可以在我正在制作的更大的应用程序中实现它。
但是,我似乎无法使用基本应用程序。这是相关代码:
"storage.js"
function Store(key,data) {
console.log("Data: " + data);
chrome.storage.local.set({ key: data }, function () {
console.log("Secret Message Saved!");
});
}
function Retrieve() {
chrome.storage.local.get(function (data) {
console.log("The data stored is:" + data);
});
}
"master.js"(主脚本)
var myKey = "secretMessage";
var myData = "Pssst!";
Store(myKey, myData);
Retrieve(myKey);
console.log("Done!");
我很茫然。我得到的输出是:
Data: Pssst!
Done!
Secret Message Saved!
The data stored is:[object Object]
看来我存储错误或检索错误。
我查看了文档。也许我只是不理解 API 的概念以及它能够存储和检索的内容。我对使用 javascript 语言进行编码还很陌生。任何帮助将不胜感激!
谢谢!
首先,
chrome.storage.local.set
& chrome.storage.local.get
是异步方法,你必须等到 chrome.storage.local.set
存储数据,然后你应该调用 chrome.storage.local.get
.
其次,
chrome.storage.local.get
正在返回一个对象。您可以使用 .toString()
或 JSON.stringify(data)
function Store(key,data, callback) {
console.log("Data: " + data);
chrome.storage.local.set({ key: data }, function () {
console.log("Secret Message Saved!");
callback(true);
});
}
function Retrieve(success) {
chrome.storage.local.get(function (data) {
console.log("The data stored is:" + JSON.stringify(data));
});
}
var myKey = "secretMessage";
var myData = "Pssst!";
Store(myKey, myData, Retrieve);
console.log("Done!");
我用过这个回调方法没有问题。
function loadSelectedStyle(){
chrome.storage.local.get('defaultColorSet', function (result) {
console.log(result.defaultColorSet);
defaultColors(result.defaultColorSet);
});
}
如果你只写'result'到控制台日志,你可以看到整个对象,通过将键添加到结果你得到数据。