lit*_*ude 16 javascript google-chrome local-storage google-chrome-extension
我正在写一个chrome扩展,我无法存储数组.我读到我应该使用JSON stringify/parse来实现这一点,但是使用它时出错了.
chrome.storage.local.get(null, function(userKeyIds){
if(userKeyIds===null){
userKeyIds = [];
}
var userKeyIdsArray = JSON.parse(userKeyIds);
// Here I have an Uncaught SyntaxError: Unexpected token o
userKeyIdsArray.push({keyPairId: keyPairId,HasBeenUploadedYet: false});
chrome.storage.local.set(JSON.stringify(userKeyIdsArray),function(){
if(chrome.runtime.lastError){
console.log("An error occured : "+chrome.runtime.lastError);
}
else{
chrome.storage.local.get(null, function(userKeyIds){
console.log(userKeyIds)});
}
});
});
Run Code Online (Sandbox Code Playgroud)
我怎么能存储像{keyPairId:keyPairId,HasBeenUploadedYet:false}这样的对象数组?
gbl*_*zex 36
我认为你误认为localStorage
是新的Chrome Storage API
.
- 您需要JSON字符串localStorage
- 您可以直接使用new存储对象/数组 Storage API
// by passing an object you can define default values e.g.: []
chrome.storage.local.get({userKeyIds: []}, function (result) {
// the input argument is ALWAYS an object containing the queried keys
// so we select the key we need
var userKeyIds = result.userKeyIds;
userKeyIds.push({keyPairId: keyPairId, HasBeenUploadedYet: false});
// set the new array value to the same key
chrome.storage.local.set({userKeyIds: userKeyIds}, function () {
// you can use strings instead of objects
// if you don't want to define default values
chrome.storage.local.get('userKeyIds', function (result) {
console.log(result.userKeyIds)
});
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16930 次 |
最近记录: |