This question already has an answer here:
I am creating a chrome-extension.
I don't know how to use a variable as the key to chrome.storage.local.set()
function. I have tried
var key = 'myKey';
chrome.storage.local.get(key, function(val) {
chrome.storage.local.set({key:val[key]+param1}); //appending param1
alert(val[key]);
}
Here i am trying to get the value of val[key]
and append a string param1
and place it back to the storage using the same key. But I am not able to do so.
the alert box displays undefined all the time.
But when I try without the variable key
, it works fine.
chrome.storage.local.get('myKey', function(val) {
chrome.storage.local.set({myKey:val['myKey']+param1}); //appending param1
alert(val['myKey']);
}
The problem is that I am using chrome.storage.local.set
can have arguments of not only string but also objects.
In JavaScript, the only way to use a non-static variable name is by assigning a value as a property, instead of using object literals.
Note: You might want to verify that
set
succeeded. This can be done by using a callback. For instance:I have solved the problem. Instead of using
chrome.storage.local.set({key:val[key]+param1});
I have replaced the json string
{key:val[key]+param1}
with an object.Here
obj
has value{"myKey":"the appended value"}