我有一个滑块,我希望能够将值设置为本地存储,以便我可以在网页上动态使用此值。
我需要帮助的部分是chrome.storage.local.set(v);
。
$('#slider').on('change', function () {
var v = $(this).val();
$( 'div').each(function () {
this.style.setProperty( 'margin', '10px '+v+'px', 'important' );
});
chrome.storage.local.set(v);
});
变量工作正常,我只需要能够将其保存到localstorage中,以便我可以使用它。它在页面重新加载之前工作,所以我现在需要的是能够将它存储到存储中,这样在重新加载该页面时就可以保存它。
更新:这就是你要说的吗?
$('#slider').on('change', function () {
var v = $(this).val();
var theKeyForV = chrome.storage.local.get({"keyforv" : v},
chrome.storage.local.set({"keyforv" : v},
function(){
// callback (what goes here?)
});
$( 'div').each(function () {
this.style.setProperty( 'margin', '10px '+theKeyForV+'px', 'important' );
});
});
答案 0 :(得分:1)
您可能需要多关注api。 chrome.storage.local的类型为StorageArea。因此,chrome.storage.local.set
的第一个(也是唯一的)参数是“一个对象,它给每个键/值对更新”。你只是给了那个对象的后半部分。尝试:
fail
答案 1 :(得分:1)
您可以这样使用:
// Set
var dataObj = {};
dataObj["key1"] = "vaule1";
// dataObj["key2"] = "vaule2"; // if you want to set value more than one key.
chrome.storage.local.set(dataObj, function() {
if(!chrome.runtime.lastError){
// set storage value successfully.
}
});
// Get
var dataObj = ["key1"];
// var dataObj = ["key1", "key2"]; // if you want to get value more than one key.
chrome.storage.local.get(dataObj, function (callback){
if(callback && callback["key1"]){
// To Do: handle callback["key1"].
}
});
// Remove
var dataObj = ["key1"];
// var dataObj = ["key1", "key2"]; // if you want to remove value more than one key.
chrome.storage.local.remove(dataObj, function(callback) {
if(!chrome.runtime.lastError){
// remove successfully.
}
});
要了解详情,请参阅chrome.storage