如何在我的 chrome 扩展程序中本地保存信息?

IT技术 javascript google-chrome google-chrome-extension
2021-03-04 04:51:34

我想让我的 chrome 扩展程序保存一些信息,但我不知道如何启动代码......我需要它来保存字符串。例如 - 用户输入一个字符串(在弹出窗口上方的文本区域中),该字符串显示在弹出窗口中。当用户退出并返回时,我希望字符串保持不变。(我相信它必须保存它)我不想将它保存在我的服务器或类似的东西上,我希望它保存在用户缓存或其他东西上。

2个回答

您现在也可以利用 Google Chrome 的storageAPI 来执行此操作。与 不同localStorage,这也可以从内容脚本访问。

//  Somewhere in your manifest...

{
    "permissions": [
        "storage"
    ]
}

//  Usage:

//  PERSISTENT Storage - Globally
//  Save data to storage across their browsers...

chrome.storage.sync.set({ "yourBody": "myBody" }, function(){
    //  A data saved callback omg so fancy
});

chrome.storage.sync.get(/* String or Array */["yourBody"], function(items){
    //  items = [ { "yourBody": "myBody" } ]
});

//  LOCAL Storage

// Save data to storage locally, in just this browser...

chrome.storage.local.set({ "phasersTo": "awesome" }, function(){
    //  Data's been saved boys and girls, go on home
});

chrome.storage.local.get(/* String or Array */["phasersTo"], function(items){
    //  items = [ { "phasersTo": "awesome" } ]
});

有关这些恶作剧如何在这里工作的更多信息:https : //developer.chrome.com/extensions/storage#type-StorageArea

之前的回答:

使用localStorage谷歌浏览器实现了 HTML5 的一些特性,它就是其中之一。

//Pull text from user inputbox
var data = document.getElementById("this_input").value;
//Save it to the localStorage variable which will always remember what you store in it
localStorage["inputText"] = data; 

您应该注意,您只能从后台页面访问您的存储(无内容脚本),因此您必须为此使用消息传递。

@BeauCielBleu 你是对的,谢谢。更新。核实?
2021-04-16 04:51:34
@mattsven 也许这是一个愚蠢的问题,但是如何从 get 回调中获取项目?我试图从那里返回一个变量或设置一个全局变量,但它不起作用。
2021-04-16 04:51:34
谢谢!还有一件事 - 它保存在哪里?(我在哪里可以找到这个本地存储文件,基本上)
2021-04-30 04:51:34
@mattsven 是的。并感谢同步/本地差异解释;)
2021-05-03 04:51:34
没问题。:) 嗯...我不确定。如果它存在,那是您必须四处询问的东西。顺便说一句,如果我有帮助,请检查我的答案。
2021-05-09 04:51:34

现在有一个特定的 API,请在此处查看:https : //developer.chrome.com/extensions/storage

请注意,它仅在您的后台页面上可用并且在一个孤立的世界中工作(您无法访问网站的 HTML5 localStorage 中包含的值)。

这是一个非常令人困惑的公式。主要优点之一是它可以在 Content Scripts 中工作,而无需像 Messaging 这样的额外工作。
2021-05-12 04:51:34