如何将标签缩略图保存到本地存储?

时间:2012-04-05 22:26:36

标签: javascript google-chrome-extension

我正在尝试跟踪我的Google Chrome扩展程序的标签缩略图,并希望能够将它们保存到我的本地存储空间。目前,我有以下几点:

chrome.tabs.captureVisibleTab(tab.windowId, function(thumb) {
     // other code here...
}

如何将拇指保存到本地存储?或者我不应该将拇指保存到本地存储,而是在下次浏览器加载时重新加载这些缩略图吗?

1 个答案:

答案 0 :(得分:2)

chrome.tabs.captureVisibleTab的回调会收到数据URI(data:image/png;base64,...data:image/jpg;base64,...)。这是一个普通字符串,可以保存在localStorage中,如下所示:

chrome.tabs.captureVisibleTab(tab.windowId, function(thumb) {
    // Example: Save by key URL
    localStorage.setItem(tab.url, thumb);
}); // <-- Don't forget the closing parenthesis..

在此示例中,屏幕截图使用localStorage.setItem保存在与标签的URI相同的键中。
您可以按如下方式枚举键:

for (var i=0; i<localStorage.length; i++) {
    var keyname = localStorage[i];            // Or localStorage.key(0);
    var thumb = localStorage.getItem(keyname);// <-- Retrieve the value
}

如果您不喜欢拇指,可以使用localStorage.removeItem方法删除它:

var keyname = 'https://stackoverflow.com/';  // For example
localStorage.removeItem(keyname);

注意localStorage限制为5MB。请考虑使用异步chrome.storage API来保存数据。