0

Google Chrome 拡張機能のタブ サムネイルを追跡しようとしていますが、それらをローカル ストレージに保存できるようにしたいと考えています。現在、次のようなものがあります。

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

親指をローカルストレージに保存するにはどうすればよいですか? または、サムネイルをローカル ストレージに保存するのではなく、次回ブラウザが読み込まれたときにそれらのサムネイルをリロードする必要がありますか?

4

1 に答える 1

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..

この例では、スクリーンショットは を使用してタブの URI と同じキーに保存されましたlocalStorage.setItem
次のようにキーを列挙できます。

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.storageAPI の使用を検討してください。

于 2012-04-06T08:20:52.380 に答える