拡張機能で_chrome.storage.local
_を使用しようとしていますが、機能していないようです。 localStorage
を使用しましたが、複数ページのコンテンツスクリプトで使用できないことに気付きました。
だから、これは私が思いついたものです:
_function save()
{
var channels = $("#channels").val();
var keywords = $("#keywords").val();
chrome.storage.local.set({'channels': channels});
chrome.storage.local.set({'keywords': keywords});
}
_
私はsave()
を正しくやっていると思いますが、問題はload()
で起こります:
_function load()
{
var channels = "";
chrome.storage.local.get('channels', function(result){
channels = result;
alert(result);
});
var keywords = "";
chrome.storage.local.get('keywords', function(result){
keywords = result;
alert(result);
});
$("#channels").val(channels);
$("#keywords").val(keywords);
}
_
アラートがトリガーされると、_[object Object]
_が出力されます。何故ですか?何が間違っていますか?ドキュメント/例を見てみましたが、問題を特定することはできません。
このコードは私のために機能します:
function load() {
var channels = "";
var keywords = "";
chrome.storage.local.get('channels', function (result) {
channels = result.channels;
alert(result.channels);
$("#channels").val(channels);
});
}
Chrome.storage.local.get() は、キーと値のマッピングにアイテムを含むオブジェクトを返すため、検索パターンでキーのインデックスを使用する必要があります。
識別してくれたRobに感謝します: Chrome.storage.local.get() is asynchronous 、 callback()が成功した後にコードが機能するようにコードを変更する必要があります。
さらに情報が必要な場合はお知らせください。
デバッグまたは使用
alert(JSON.stringify(result));
返品の詳細については
使用している「結果」値は、ストレージ値を含むオブジェクトであり、使用する必要がある値を取得しますresult.keywords
、キーワードの値を取得します。例:
function load(){
chrome.storage.local.get('keywords', function(result){
var keywords = result.keywords;
alert(keywords);
});
chrome.storage.local.get('channels', function(result){
var channels = result.channels;
alert(channels);
});
}