使用.crx将预定义的数据发送到浏览器本地存储

send predefined data to browser local storage with .crx

本文关键字:浏览器 存储 crx 预定义 数据 使用      更新时间:2023-09-26

我正在构建我的第一个chrome扩展,为此我想在客户端浏览器中有一些预定义的数据。

我希望数据能够被用户通过扩展方式编辑,并保存更改。

我首先想到的是使用HTML5 local databaseIndexed Database API。(我做得对吗?)

但是我不知道如何将这个本地数据库发送到.crx的客户端。因为数据库将与浏览器而不是扩展。

如何通过。crx将数据发送到客户端浏览器并将数据保存在浏览器上?(我知道在浏览器上保存数据是不对的,但如果我把数据保存在扩展名上,我就不能保存数据了)

我可以用什么其他方法来实现需求?

如果我想使用Indexed Database API,我可以使用相同的方法吗?


我的数据不是简单的键值对,而是表类型的数据。
我没有任何数据访问部分的代码,因为我想确定在我继续

之前

不可以,你不能用ctx文件发送数据库文件。很简单,你无法在客户端取代它。实际上你有两个选择:

1)保存预定义的数据到您的扩展名(在任何扩展名文件。将整个查询或数据保存为JSON),并在第一次运行后执行这些查询到本地数据库。

2)创建web服务,从那里你将获得预定义的数据,并将其保存到本地数据库。

例如(data.json):

[{"name":"name", "desc":"desc","some_column":"some value"},{"name":"name", "desc":"desc","some_column":"some value"}, ...]
在background.html:

var xhr = new XMLHttpRequest();
xhr.open('GET', chrome.extension.getURL('data.json'), false);
var dataStr = xhr.send(); //don't do this way. use asynch api :)
var data = JSON.parse(dataStr);
//connect to local database
for(var _item in data){
    //create query to insert data into DB
    //and exequte query
}