7

LocalStorageで動作する小さなスニペットがありますが、Chromeストレージスキームで動作させることはまだできません。

アプリケーションが起動したら、localStorageの変数を確認します

var bookNarration=parseInt(localStorage.getItem("narration"));

その変数が未定義の場合は、アプリが初めて開かれ、「デフォルト」宣言を使用してスイッチでbookLanguageを処理したことを意味します。

switch(window.bookNarration)
  {
    case 2:
        window.narrationShift = window.spanishShift;
    break;
    case 3:
        window.narrationShift = window.frenchShift;
    break;
    case 10:
        window.narrationShift = window.neutralShift;
    break;
    default:
        window.narrationShift = 0; }

Chromeストレージで動作させるために、次のようにコードを変更します。

var bookNarration=parseInt(chrome.storage.local.get("narration"));

しかし、私はすぐにこのエラーを受け取ります:

フォームget(string)の呼び出しが定義get(オプションの文字列または配列またはオブジェクトキー、ファンクションコールバック)と一致しません

私は解決策を見つけるために何時間も探していましたが、それを機能させることができません。値がすでに定義されているかどうかを確認する必要があるので、定義されていない場合は、set()メソッドを使用してデフォルト値を格納できます。

4

2 に答える 2

10

関数はコールバックを必要とします:

chrome.storage.local.get("narration", function(data)
{
    if(chrome.runtime.lastError)
    {
        /* error */

        return;
    }

    var bookNarration = parseInt(data.narration);

    switch(bookNarration)
    {
        /* ... */
    };
});
于 2013-02-28T18:58:45.143 に答える