web-dev-qa-db-ja.com

chrome拡張機能でローカルに情報を保存するにはどうすればよいですか?

chrome拡張機能で情報を保存したいのですが、コードの開始方法がわかりません...文字列を保存するために必要です。たとえば、ユーザーが文字列を入力します(Inポップアップ上のテキスト領域)、この文字列はポップアップに表示されます。ユーザーが終了して戻るとき、文字列を同じままにしておきます(保存する必要があります)。保存しません。私のサーバーまたはそのような何か、私はそれがユーザーのキャッシュまたは何かに保存したい。

58
Ariel

Google Chromeのstorage AP​​Iを利用してこれを行うこともできます。 localStorageとは異なり、これはコンテンツスクリプトからもアクセスできます。

//  Somewhere in your manifest...

{
    "permissions": [
        "storage"
    ]
}

//  Usage:

//  PERSISTENT Storage - Globally
//  Save data to storage across their browsers...

chrome.storage.sync.set({ "yourBody": "myBody" }, function(){
    //  A data saved callback omg so fancy
});

chrome.storage.sync.get(/* String or Array */["yourBody"], function(items){
    //  items = [ { "yourBody": "myBody" } ]
});

//  LOCAL Storage

// Save data to storage locally, in just this browser...

chrome.storage.local.set({ "phasersTo": "awesome" }, function(){
    //  Data's been saved boys and girls, go on home
});

chrome.storage.local.get(/* String or Array */["phasersTo"], function(items){
    //  items = [ { "phasersTo": "awesome" } ]
});

これらのシェナンガンがどのように機能するかについての詳細はこちら: https://developer.chrome.com/extensions/storage#type-StorageArea

以前の回答:

localStorage を使用します。 Google Chrome=はHTML5のいくつかの機能を実装しており、その1つです。

//Pull text from user inputbox
var data = document.getElementById("this_input").value;
//Save it to the localStorage variable which will always remember what you store in it
localStorage["inputText"] = data; 

バックグラウンドページからのみストレージにアクセスできることに注意してください(コンテンツスクリプトは使用できません)。そのため、メッセージングを使用する必要があります。

104
mattsven

現在、特定のAPIがあります。こちらで確認してください: https://developer.chrome.com/extensions/storage

バックグラウンドページでのみ利用可能で、孤立した世界で動作することに注意してください(WebサイトのHTML5 localStorageに含まれる値にはアクセスしません)。

0
BeauCielBleu