我想在 twitch.tv 上使用 chrome 扩展程序激活一些脚本。
所以我得到了一个名为 script2.js 的文件和一个名为 script3.js 的文件
在我的 list 中,我想说 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"
}
script2 已加载,但 script3 未加载。我做错了什么吗?
编辑:
查看我提到的 list , list 是正确的。 我添加了一个警报(“测试”);在我的脚本之上并触发了警报,因此脚本被正确执行。但是:
我在网站上添加了一些新按钮。如果我将我的 script3.js 复制并粘贴到 twitch.com/directory 上的 chrome-console,将显示新按钮。但是,如果脚本是由 chrome 执行的,则按钮不存在。
为什么会这样,脚本似乎是正确的(因为如果我手动加载它,它就可以工作)但如果它是自动加载的,那就错了?
最佳答案
反转两个规则,因为第一个总是匹配
{
"js": [ "script3.js" ],
"matches": [ "*://*.twitch.tv/directory" ]
},
{
"js": [ "script2.js" ],
"matches": [ "*://*.twitch.tv/" ]
}]
关于javascript - Chrome 扩展多个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756006/