我有一个 chrome 扩展,可以将大量数据保存到 chrome.storage.local。我正在尝试找到简单的方法来导出这些数据并将其打包到文件中。我不受文件类型的限制(JSON、CSV,等等),我只需要能够将内容导出到独立(且可发送)文件中。该扩展仅在本地运行,用户可以访问所有本地文件。
首先,您需要获取所有数据。
然后将结果序列化。
最后,将其作为下载提供给用户。
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
权限。
您应该看这里:https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/AzO_taH2b7U
它显示将 chrome 本地存储导出到 JSON。
希望有帮助
您可以创建一个 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();
});