Javascript 使用.crx将预定义数据发送到浏览器本地存储
我正在构建我的第一个chrome扩展,为此我希望在客户端浏览器中有一些预定义的数据 我希望数据能够由用户通过扩展编辑,并保存回更改 我首先想到使用HTML5Javascript 使用.crx将预定义数据发送到浏览器本地存储,javascript,html,google-chrome,google-chrome-extension,local-database,Javascript,Html,Google Chrome,Google Chrome Extension,Local Database,我正在构建我的第一个chrome扩展,为此我希望在客户端浏览器中有一些预定义的数据 我希望数据能够由用户通过扩展编辑,并保存回更改 我首先想到使用HTML5本地数据库或索引数据库API(我做得对吗?) 但我不知道如何将本地数据库发送到.crx中的客户端,因为数据库将使用浏览器而不是扩展 如何通过.crx将数据发送到客户端浏览器并将数据保存在浏览器上? (我知道在浏览器上保存数据是不对的,但如果将数据与扩展名一起保存,则无法将数据保存回去) 我还可以用什么方法来实现需求 如果我想使用索引数据库AP
本地数据库
或索引数据库API
(我做得对吗?)
但我不知道如何将本地数据库发送到.crx
中的客户端,因为数据库将使用浏览器而不是扩展
如何通过.crx将数据发送到客户端浏览器并将数据保存在浏览器上?
(我知道在浏览器上保存数据是不对的,但如果将数据与扩展名一起保存,则无法将数据保存回去)
我还可以用什么方法来实现需求
如果我想使用索引数据库API
,是否可以使用相同的方法
我的数据不是简单的键值对,而是表类型的数据。
我没有数据访问部分的任何代码,因为我想在继续之前确定否,您不能将数据库文件与ctx文件一起发送。简单地说,您无法在客户端替换它。 实际上你有两个选择: 1) 将预定义数据保存到扩展名中(在任何扩展名文件中。将整个查询或数据保存为JSON),并在首次运行后将这些查询执行到本地数据库 2) 创建web服务,从中获取预定义数据并将其保存到本地数据库 例如(data.json): 在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
}
您能确定脱机字典()是如何实现的吗?它们的扩展名大约为8MB,包含二进制文件中的定义数据。它不使用本地数据库或本地存储。它使用本地文件系统和二进制搜索加载结果。
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
}