0

2 つの Web サイトで動作する Chrome 拡張機能を構築しようとしています。これらを website1.com と website2.com と呼びます。使用している Web サイトに応じて、すべてのロジックを格納する別の JS ファイルを含めたいと思います (この例では、code-for-website-1.js と呼んでいます (website2.com 用の別の JS もあります)。 )。

website1.com の場合は code-for-website-1.js のみ、code-for-website-2 の場合は code-for-website-2.js のみを含める方法を理解するのに問題があります。 .js。

これが私のマニフェストです:

{
  "name": "My Chrome Extension",
  "version": "1.0",
  "description": "Extension description",
  "manifest_version": 2,
  "permissions": ["tabs", "http://www.website1.com", "http://www.website2.com"],
  "content_scripts": [
    {
      "matches": ["http://www.website1.com"],
      "js": ["jquery.js", "code-for-website-1.js"]
    }
  ]
}

次のコマンドを使用する 1 つの controller.js を使用しようとしました。

if (onWebsite1 == true){
chrome.tabs.executeScript(null, { file: "code-for-website-1.js" });
} else {
chrome.tabs.executeScript(null, { file: "code-for-website-2.js" });
}

これでエラーが発生します:

キャッチされていない TypeError: 未定義のメソッド 'executeScript' を呼び出せません

4

1 に答える 1

2

ドキュメントに従ってマニフェストで、 content_script配列に複数のオブジェクトを追加できます

"content_scripts": [
   {
      "matches": ["http://www.website1.com/*"],
      "js": ["script_for_website1.js"]
   },
   {
      "matches":["http://www.website2.com/*"],
      "js":["script_for_website2.js"]
   }
]
于 2013-04-30T13:06:47.057 に答える