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

Posted

技术标签:

【中文标题】Chrome 扩展:本地存储,如何导出【英文标题】:Chrome Extension: Local Storage, how to export 【发布时间】:2014-06-03 08:17:48 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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方法,除了在manifest文件中声明storage权限外,还需要声明"downloads"权限。

【讨论】:

感谢您的回答。抱歉,我验证有点延迟。只要我有能力,并假设这是最好的路线,我会标记为正确的。谢谢! 我得到的 chrome 没有定义我应该在我的服务中导入什么。文件? 如何将此 JSON 文件恢复到本地存储?谢谢【参考方案2】:

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

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

希望对你有帮助

【讨论】:

那不是chrome.storage,而是localStorage @unit998x,感谢您的回复。我以前看过这篇文章,它可以很好地以 JSON 格式显示内容。但这不会提示用户下载输出。我听说有人建议使用 html5 的文件处理,但如果有一个 chrome API 来处理它会更容易(因为它已经存储在 chrome.storage 中)。感谢您的帮助!

以上是关于Chrome 扩展:本地存储,如何导出的主要内容,如果未能解决你的问题,请参考以下文章

Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载

Chrome 扩展程序是不是可以访问本地存储?

如何同步 chrome 扩展选项

如何链接到 Google Chrome 扩展程序的本地图像?

如何使用变量的值作为键名在 chrome 扩展中使用 chrome.storage?

未捕获的类型错误:无法读取 chrome 扩展中未定义的属性“本地”