Chrome扩展程序多重匹配

时间:2013-07-19 21:44:40

标签: javascript google-chrome google-chrome-extension

我想在twitch.tv上使用chrome扩展名激活一些Scripts。

所以我得到了一个名为script2.js的文件和一个名为script3.js的文件

在我的清单中,我想说www.twitch.tv已加载script2.js必须加载,如果加载了www.twitch.tv/directory,则必须加载script3.js:

{
  "content_scripts": [{
  "js": [ "script2.js" ],
  "matches": [ "*://*.twitch.tv/" ]
 }, {
  "js": [ "script3.js" ],
  "matches": [ "*://*.twitch.tv/directory" ]
} ],
"description": "desc",
"manifest_version": 2,
"name": "TwitchTV",
"permissions": [ "*://*.twitch.tv/*" ],
"version": "1.0"
} 

脚本2已加载,但脚本3未加载。我做错了吗?

编辑:

通过查看我提到的清单,清单是正确的。 我添加了警报(“测试”);在我的脚本之上并触发警报,因此脚本正确执行。但是:

我在网站上添加了一些新的按钮。如果我将我的script3.js复制并粘贴到twitch.com/directory上的chrome-console,则会显示新按钮。但是如果脚本是由chrome执行的,则按钮不在那里。

为什么会这样,脚本似乎是正确的(因为如果我手动加载它可以工作)但是如果它自动加载它的错误?

1 个答案:

答案 0 :(得分:2)

反转这两条规则,因为第一条规则总是匹配

{
  "js": [ "script3.js" ],
  "matches": [ "*://*.twitch.tv/directory" ]
},
{
  "js": [ "script2.js" ],
  "matches": [ "*://*.twitch.tv/" ]
 }]