一尘不染

Chrome扩展清单“匹配”

json

我正在尝试使用简单的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中时,收到以下消息:

无法从“ C:\ Users \ foo \ Desktop \ Extensions \ bar”加载扩展名。
“ content_scripts”的值无效。

我看不到我的值是什么“无效”。我想做的是匹配每个URL,以便我的扩展程序可以操纵scripts.js它所运行的任何页面的DOM(通过javascript
)。我是否错过了某些东西,这一切错了,还是什么?

更新

发布此问题后,我确实注意到Google示例与我的示例略有不同,因此我对代码进行了一些修改以反映其语法:

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

话虽如此,当我尝试加载扩展程序时仍然出现以下错误:

无法从“ C:\ Users \ foo \ Desktop \ Extensions \ bar”加载扩展名。
“ content_scripts [0] .matches [0]”的值无效。


阅读 405

收藏
2020-07-27

共1个答案

一尘不染

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

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

(有关更多信息,请参见Chrome文档

顺便说一句,使用http://*/*将是所有URL的更好匹配(请参阅docs),并添加https://*/*您是否还需要匹配它们。

编辑:

编辑后,出现的错误是由于匹配模式不正确。

2020-07-27