2014-04-18 47 views
9

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

回答

9

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

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

感谢您的回答。道歉我在验证时有点迟疑。只要我能够,并且假设这是最佳路线,我会标记正确。谢谢! – ZAR

0

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

这表明出口铬本地存储JSON。

希望它可以帮助

+0

这不是['chrome.storage'](https://developer.chrome.com/extensions/storage),而是'localStorage'。 –

+0

@ unit998x,谢谢你的回应。我以前看过这篇文章,它能够以JSON格式显示内容。但是这不会提示用户下载输出。我听说有人推荐使用HTML5的文件处理,但如果有一个chrome API来处理这个问题,它会更容易(因为它已经存储在chrome.storage中)。谢谢您的帮助! – ZAR

相关问题