如何在Chrome扩展程序中本地保存信息?

时间:2011-03-19 18:41:27

标签: javascript google-chrome google-chrome-extension

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

2 个答案:

答案 0 :(得分:98)

您现在可以利用Google Chrome的storage API执行此操作。与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; 

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

答案 1 :(得分:0)

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

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