2014-04-18 22 views
9

Tôi có tiện ích mở rộng chrome giúp lưu một loạt dữ liệu vào chrome.storage.local. Tôi đang cố gắng tìm các cách dễ dàng để xuất dữ liệu này và đóng gói nó vào một tệp. Tôi không bị ràng buộc vào loại tệp nào (JSON, CSV, bất kỳ thứ gì), tôi chỉ cần có thể xuất nội dung vào một tệp độc lập (và có thể gửi). Phần mở rộng chỉ chạy cục bộ và người dùng sẽ có quyền truy cập vào tất cả các tệp cục bộ.Tiện ích mở rộng của Chrome: Bộ nhớ cục bộ, cách xuất

Trả lời

9

Trước tiên, bạn cần lấy tất cả dữ liệu.
Sau đó, tuần tự hóa kết quả.
Cuối cùng, cung cấp dưới dạng tải xuống cho người dùng.

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' 
    }); 
}); 

Để sử dụng phương pháp chrome.downloads.download, bạn cần phải khai báo cho phép "downloads" ngoài các storage phép trong file manifest.

+0

Cảm ơn câu trả lời. Xin lỗi tôi hơi chậm trễ trong việc xác minh. Ngay sau khi tôi có thể, và giả sử đây là tuyến đường tốt nhất, tôi sẽ đánh dấu chính xác. Cảm ơn bạn! – ZAR

0

Bạn nên tìm ở đây: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/AzO_taH2b7U

Nó cho thấy xuất khẩu lưu trữ địa phương chrome để JSON.

Hy vọng điều này sẽ giúp

+0

Đó không phải là ['chrome.storage'] (https://developer.chrome.com/extensions/storage), nhưng' localStorage'. –

+0

@ unit998x, cảm ơn bạn đã phản hồi. Tôi đã nhìn thấy bài đăng này trước và nó hoạt động tốt để hiển thị nội dung ở định dạng JSON. Nhưng điều này không nhắc người dùng tải xuống đầu ra. Tôi đã nghe ai đó khuyên bạn nên sử dụng xử lý tệp của HTML5, nhưng sẽ dễ dàng hơn nếu có một API chrome để xử lý điều này (vì nó đã được lưu trữ trong chrome.storage). Cảm ơn đã giúp đỡ! – ZAR

Các vấn đề liên quan