1. ホーム
  2. javascript

[解決済み] クロームの拡張機能で情報をローカルに保存するにはどうすればよいですか?

2023-04-05 19:24:19

質問

クロームの拡張機能で情報を保存したいのですが、どのようにコードを開始すればいいのかわかりません。 私はそれが文字列を保存する必要があります。 例えば、ユーザーが文字列を入力し(ポップアップ上のテキストエリアで)、この文字列がポップアップに表示されます。ユーザーがそれを終了して戻るとき、私は文字列が同じままであることを望みます。 (保存する必要があると思います。) サーバーに保存とかではなく、ユーザーのキャッシュとかに保存してほしいです。

どのように解決するのですか?

Google Chrome の storage API を利用して、このようなこともできるようになりました。とは異なり 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

以前の回答です。

使用方法 ローカルストレージ . 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; 

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