0

我正在编写一个 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 存储中设置它们?

如果我应该提供更多信息或代码,请告诉我。该项目非常大,我不确定有什么帮助。我对这一切都比较陌生。

4

0 回答 0