有选择地包括依赖于网站的javascript文件

时间:2013-04-30 13:01:36

标签: javascript google-chrome-extension

我正在尝试构建一个适用于两个网站的Chrome扩展程序,我们称之为website1.com和website2.com。根据我们所处的网站,我想包含一个不同的JS文件,它将存储所有逻辑(在这个例子中我称之为code-for-website-1.js(还有另一个JS for website2.com) )。

我遇到一个问题,弄清楚当我在website1.com上时我只能包含code-for-website-1.js和当我在代码上时代码为2.js网站2.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"]
    }
  ]
}

我尝试使用一个将使用以下命令的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'

1 个答案:

答案 0 :(得分: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"]
   }
]