gpt4 book ai didi

google-chrome-extension - 如何在使用变量值作为键名称的chrome扩展程序中使用chrome.storage?

转载 作者:行者123 更新时间:2023-12-03 13:25:15 25 4
gpt4 key购买 nike

我正在尝试使用chrome的本地存储/同步存储(chrome.storage)作为扩展,以存储许多不同条目的数据条目。我似乎无法找出正确的语法。我只想简单地将信息存储为字符串。我已经搜索过,找不到任何有效的方法。

这是目前使用常规localStorage技术对我有效的方法:

    var imageName = "Red Cat 5";
var myDescription = "A nice kitty";

localStorage.setItem (imageName, myDescription);
console.log(localStorage[imageName]);


这有效,并且让我从现有变量中设置键。
如何使用chrome.storage.local.set进行操作?
我一直在尝试没有成功:

    var imageName = "Red Cat 5";
var myDescription = "A nice kitty";

chrome.storage.local.set({imageName: myDescription}, function()
{console.log('success?');});

chrome.storage.local.set({imageName: myDescription}, function()
{chrome.storage.local.get(imageName, function(r){console.log(r.imageName);});});


任何帮助深表感谢。谢谢!

-----更新如下-----

感谢您对代码的解释。希望对其他人有帮助。这样做的信息似乎很少!您的回答帮助我提出了以下建议:

    var nameOne = "al";
var nameTwo = "bob";
var nameThree = "carl";
var nameFour = "dan";

var dataObj = {};

dataObj[nameOne] = nameTwo;
dataObj[nameThree] = nameFour;

storage.set(dataObj);

storage.get(dataObj, function(result)
{
console.log(result[nameOne]);
console.log(result[nameThree]);
});

最佳答案

使用命名对象而不是匿名对象,并使用方括号设置成员变量:

var dataObj = {};
dataObj[imageName] = myDescription;
chrome.storage.local.set(dataObj, function() { /*...*/ });


它不是看起来最优雅的代码,但这是实现它的唯一方法。

在ES6中,一种稍短的方法是使用带有动态属性名称的对象文字:

chrome.storage.local.set({
[imageName]: myDescription
}, function() { /*...*/ });

关于google-chrome-extension - 如何在使用变量值作为键名称的chrome扩展程序中使用chrome.storage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com