12

Chrome拡張機能を作成しました。バックグラウンドとブラウザのアクションは別の環境で実行されるため、保存と取得には使用できません [localStorage.setItemここに 表示されているように]。localStorage.getItem

そこで、Chrome ストレージ API を使用することにしました。

var storage = chrome.storage.local;
var myTestVar = 'somevar';
var obj = {};
obj[myTestVar] = $("#somevar").val();
storage.set(obj);

次のエラーが発生しました。

キャッチされていない TypeError: 未定義のプロパティ 'local' を読み取ることができません

私は何を間違っていますか?

4

2 に答える 2

17

必要なすべての権限がマニフェスト ファイルで宣言されていることを確認してください。"storage"、あなたの場合。

一般に、次の手順で明らかに未定義の Chrome API の問題を解決できます。

  1. 使用している API のドキュメントを読み、前提条件、通常はマニフェスト アクセス許可 ( #manifest など) について理解しchrome.storageください
  2. What's newを参照して、(ユーザーの) Chrome バージョンが API をサポートしているかどうかを確認します。
  3. スクリプトが正しいコンテキストで実行されているかどうかを確認します。ほとんどの API は、拡張機能のプロセスでのみ使用できます。(ただし、chrome.storageAPI はコンテンツ スクリプトでも使用できます)
  4. それ以外の場合は、通常のデバッグ スキルに頼ってください: タイプミス、変数のシャドーイングなど。
于 2013-02-27T15:05:06.927 に答える