Chrome 扩展:本地存储,如何导出

问题描述 投票:0回答:3

我有一个 chrome 扩展,可以将大量数据保存到 chrome.storage.local。我正在尝试找到简单的方法来导出这些数据并将其打包到文件中。我不受文件类型的限制(JSON、CSV,等等),我只需要能够将内容导出到独立(且可发送)文件中。该扩展仅在本地运行,用户可以访问所有本地文件。

google-chrome-extension local-storage
3个回答
23
投票

首先,您需要获取所有数据。
然后将结果序列化。
最后,将其作为下载提供给用户。

chrome.storage.local.get(null, function(items) { // null implies all items
    // Convert object to a string.
    var result = JSON.stringify(items);

    // Save as file
    var url = 'data:application/json;base64,' + btoa(result);
    chrome.downloads.download({
        url: url,
        filename: 'filename_of_exported_file.json'
    });
});

要使用

chrome.downloads.download
方法,除了在清单文件中声明
"downloads"
权限外,还需要声明
storage
权限。


0
投票

您应该看这里:https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/AzO_taH2b7U

它显示将 chrome 本地存储导出到 JSON。

希望有帮助


0
投票

您可以创建一个 blob,并使用锚标记模拟下载。

chrome.storage.local.get(null, function(data) {
  var jsonData = JSON.stringify(data, null, 2);

  // Create a Blob containing the JSON data
  var blob = new Blob([jsonData], { type: 'application/json' });

  // Create a download link and trigger a click event to download the file
  var downloadLink = document.createElement('a');
  downloadLink.href = URL.createObjectURL(blob);
  downloadLink.download = 'extension_data.json';
  downloadLink.click();
});
© www.soinside.com 2019 - 2024. All rights reserved.