0

バックグラウンド ページを必要とせずにユーザーのデータ ストレージにアクセスできるようにする chrome.storage API を使用しています。

https://developer.chrome.com/stable/extensions/storage.html

拡張機能は特定のページでは正常に機能していますが、別の URL のページで拡張機能が読み込まれたときにアクセスできないようにデータが保存されているようです。

基本的なデータ取得コード:

var key = 'commonKey';
chrome.storage.sync.get(key, function(items) {console.log(items);}

http://test.com/ABCのような URL でコンテンツ スクリプトを照合していますが、データはそのページを何度も読み込んでも正しく保持されます。ただし、http://test.com/CDEをロードすると、別のデータ セットが取得および設定されます (ページ ABC にロードされたデータには影響しません)。

URL ごとにデータの名前空間を指定する動作はありますか? ドキュメントやその他の質問に目を通しましたが、そのようなものは見つかりませんでした。

マニフェストは次のようになります。

{
  "name": "Test script",
  "manifest_version": 2,
  "content_scripts" : [
    {
      "matches": ["http://www.test.com/*"],
      "js": ["jquery.min.js", "contentscript.js"]
    }
  ],
  "permissions": [
    "storage"
  ]
}
4

1 に答える 1

0

問題はここにありました:

var key = 'commonKey';
chrome.storage.sync.get(key, function(items) {console.log(items);}

データを設定するときに「commonKey」の代わりにキーを使用すると、データが「commonKey」ではなく文字列「key」の下に格納されていました。それに加えて、残りのコードのロジックにより、上記の動作が発生しました。

于 2013-02-25T08:31:00.657 に答える