0

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

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

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

但我不知道如何将这个本地数据库发送到.crx..因为数据库将使用浏览器而不是扩展名。

如何通过 .crx 将数据发送到客户端浏览器并将数据保存在浏览器上?(我知道在浏览器上保存数据是不对的,但是如果我将数据与扩展名一起保存,我将无法保存数据)

我可以使用什么其他方式来实现要求?

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


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

4

1 回答 1

1

不,您不能使用 ctx 文件发送数据库文件。只是您无法在客户端替换它。其实你有两个选择:

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

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
}
于 2012-01-05T11:07:03.160 回答