我正在尝试使用一个简单的 Chrome 扩展程序,但是在为 matches 中的 content_scripts 数组提供值时遇到了问题。

{
  "name": "My Extension",
  "version": "1.0",
  "description": "My Extension Experiment",
  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "Ext",
    "default_popup": "popup.html"
  },
  "content_scripts": {
    "matches": ["http://*"],
    "js": ["scripts.js"]
  }
}

当我尝试将此扩展程序加载到 Chrome 时,我收到以下消息:



不过,我看不出我的值(value)有什么“无效”。我想要做的是匹配每个 URL,因此我的扩展程序可以操作它运行的任何页面的 DOM(通过 scripts.js 内的 javascript)。我错过了什么,这一切都错了,还是什么?

更新

发布此问题后,我确实注意到 Google 示例与我的略有不同,因此我稍微修改了我的代码以反射(reflect)它们的语法:
"content_scripts": [{
  "matches": ["http://*"],
  "js": ["scripts.js"]
}]

话虽如此,在尝试加载我的扩展程序时,我仍然收到以下错误:

最佳答案

您需要将 content_scripts 字段的值括在方括号中:

"content_scripts": [ {
  "matches": ["http://*"],
  "js": ["scripts.js"]
} ]

(有关更多信息,请参阅 Chrome Docs)

顺便说一句,使用 http://*/* 将更好地匹配所有网址(请参阅 docs ),如果您还需要匹配这些网址,则添加 https://*/*

编辑:

在您编辑之后,您得到的错误是因为匹配模式不正确。

关于json - Chrome 扩展 list 'Matches',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2769525/

10-16 19:53