javascript - Chrome 扩展多个匹配项

标签 javascript google-chrome google-chrome-extension

我想在 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/

相关文章:

javascript - Chrome 扩展程序页面操作未显示在多功能栏旁边

javascript - 从 XHR 获取方法和 url

javascript - 如何在鼠标靠近时增加元素大小?

javascript - AngularJS 在 API 回调后恢复表单

javascript - 在 chrome 扩展中传递同步消息?

javascript - 将自定义功能添加到 chrome 的控制台中

javascript - 特定字体未在 Google Chrome 上显示,但 Safari 可以

javascript - 使用 Chrome 扩展覆盖 Element.prototype.attachShadow

javascript - NodeJS 中的正则表达式 : Only split() if next character is not a dot

javascript - 如何使用 Chrome.Storage 设置和获取值?