我正在编写一个 chrome 扩展,我正在从选项页面导出和导入一个 json 文件。
function export_theme() {
chrome.storage.sync.get({
'colorBg': '',
'colorFg': '',
'colorHi': '',
'colorBtn': '',
'colorDrop': '',
'colorLi': '',
'colorLi2': ''
},
function(items){
var result = JSON.stringify(items);
var url = 'data:application/json;base64,' + btoa(result);
var name = 'custom_theme';
chrome.downloads.download({
url: url,
saveAs: true
});
});
};
这将正确存储为文件。例子:
{"colorBg":"#ffffff","colorBtn":"#000000","colorDrop":"#666666","colorFg":"#333333","colorHi":"#cc0000","colorLi": "#000000","colorLi2":"#000000"}
但是我找不到将 .json 文件重新导入的 chrome api。我在 stackoverflow 上进行了搜索,发现了这个——https://stackoverflow.com/a/38838572/8116516 ,它正在工作。
function import_theme(e) {
var files = e.target.files, reader = new FileReader();
reader.onload = _imp;
reader.readAsText(files[0]);
}
function _imp() {
var colors = JSON.parse(this.result);
console.log(colors);
document.getElementById('import').value = '';
}
导入成功,我可以在控制台中查看列表,但我不知道如何从这个 json 对象将值返回到我的 chrome 存储中。有为此的chrome api吗?如何提取变量和十六进制颜色值以在现有的 chrome 存储中设置它们?
如果我应该提供更多信息或代码,请告诉我。该项目非常大,我不确定有什么帮助。我对这一切都比较陌生。