Ari*_*tle 41 json google-chrome-extension
我正在尝试使用简单的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"]
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将此扩展程序加载到Chrome时,我收到以下消息:
无法从'C:\ Users\foo\Desktop\Extensions\bar'加载扩展程序.
"content_scripts"的值无效.
我无法看到关于我的价值的"无效".我要做的是匹配每个URL,因此我的扩展可以操作scripts.js运行的任何页面的DOM(通过javascript ).我错过了什么,这一切都错了,或者是什么?
更新
发布此问题后,我注意到Google示例与我的示例略有不同,因此我稍微修改了我的代码以反映其语法:
"content_scripts": [{
"matches": ["http://*"],
"js": ["scripts.js"]
}]
Run Code Online (Sandbox Code Playgroud)
话虽这么说,我仍然在尝试加载我的扩展时收到以下错误:
无法从'C:\ Users\foo\Desktop\Extensions\bar'加载扩展程序.
'content_scripts [0] .matches [0]'的值无效.
adr*_*nks 61
您需要content_scripts用方括号括起字段的值:
"content_scripts": [ {
"matches": ["http://*"],
"js": ["scripts.js"]
} ]
Run Code Online (Sandbox Code Playgroud)
(有关详细信息,请参阅Chrome文档)
顺便提一下,使用它http://*/*会更好地匹配所有网址(请参阅文档),https://*/*如果您还需要匹配这些网址,请添加.
编辑:
编辑后,您得到的错误是因为匹配模式不正确.
thd*_*oan 49
如果您想匹配每个网址,那么Google就会为此目的设置一种特殊模式: <all_urls>
样品用法:
"matches": ["<all_urls>"],
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此页面:https: //developer.chrome.com/extensions/match_patterns
任何匹配模式都应具有以下结构[scheme] :// [host] [path]
要匹配任何HTTP / S和FILE URL,请使用:
"matches": [
"*://*/*",
"file://*/*"
],
Run Code Online (Sandbox Code Playgroud)
参考:https : //developer.chrome.com/apps/match_patterns
顺便说一句,为了允许访问本地文件,请添加权限:
"permissions": [
"file://*/*"
]
Run Code Online (Sandbox Code Playgroud)
或在扩展名设置页面上批准文件访问。
| 归档时间: |
|
| 查看次数: |
51463 次 |
| 最近记录: |