我正在尝试使用简单的Chrome扩展程序,但是在为matches数组提供值时遇到了问题content_scripts。
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 )。我是否错过了某些东西,这一切错了,还是什么?
scripts.js
更新
发布此问题后,我确实注意到Google示例与我的示例略有不同,因此我对代码进行了一些修改以反映其语法:
"content_scripts": [{ "matches": ["http://*"], "js": ["scripts.js"] }]
话虽如此,当我尝试加载扩展程序时仍然出现以下错误:
无法从“ C:\ Users \ foo \ Desktop \ Extensions \ bar”加载扩展名。 “ content_scripts [0] .matches [0]”的值无效。
您需要将content_scripts字段的值括在方括号中:
"content_scripts": [ { "matches": ["http://*"], "js": ["scripts.js"] } ]
(有关更多信息,请参见Chrome文档)
顺便说一句,使用http://*/*将是所有URL的更好匹配(请参阅docs),并添加https://*/*您是否还需要匹配它们。
http://*/*
https://*/*
编辑:
编辑后,出现的错误是由于匹配模式不正确。