javascript - 何时在 Chrome 清单中使用方括号?
问题描述
它们代表什么?这是在哪里记录的?例如,
...
"content_scripts":[
{
"matches": ["<all_urls>"],
"css" : ["inject.css"],
"js": ["filter.js"],
"run_at": "document_end",
"all_frames": true
}],
...
或者
...
"permissions": [
"file://*/*",
"tabs",
"storage",
"activeTab"
],
...
我怎么知道这是否不应该,例如,
...
"permissions": [
["file://*/*"],
["tabs"],
["storage"],
["activeTab"]
],
...
虽然更好的例子是用 content_script 键值的看似奇怪的形式来说明的。看起来好像键被分配了一个数组,并且该数组有时包含单个元素,有时它仅包含字符串甚至布尔值。括号不代表数组吗?它们可能代表一个索引吗?标签的索引?
解决方案
Chrome 扩展清单遵循 JSON 格式,这意味着方括号表示某种数组。Manifest 文件格式文档明确说明字段值何时应为数组,何时不应为数组。例如,
"chrome_url_overrides": {...},
表示 的值chrome_url_overrides
必须是一个对象(用 表示{...}
),而
"content_scripts": [{...}],
表示 的值content_scripts
必须是对象数组。即使您在那里只定义了一个内容脚本,它仍然应该包含在一个数组中。
关于您的示例permissions
,以下是文档中的说明:
每个权限可以是已知字符串列表中的一个(例如“地理位置”)或匹配模式
它从不说“可以是字符串列表的列表”。此外,文档页面上的示例进一步说明它只是一个字符串数组,而不是数组数组。
推荐阅读
- flutter - 连续两列自动缩放图像?
- angular - 单元测试中未调用 setTimout 中的函数
- for-loop - 减少几个 do 循环的计算时间以计算总和
- c# - GeckoFX45 与 System.AccessViolationException 崩溃
- amazon-web-services - Athena 返回“返回零记录”
- symfony - 无法自动装配参数:Symfony 4
- python - 查找列表中的第 n 次幂
- android - 我想在使用 kotlin 协程的 android 超时后取消一个函数,但它不起作用
- javascript - json 文件被 CORS 阻止
- python - 具有正约束的最小化返回零参数