content_scripts
类型 | 数组 |
---|---|
必填 | 否 |
清单版本 | 2 或更高版本 |
示例 |
json
|
指示浏览器将 内容脚本 加载到其 URL 与给定模式匹配的网页中。
此键是一个数组。每个项目都是一个对象,该对象
- **必须**包含一个名为**
matches
**的键,该键指定要匹配的 URL 模式,以便加载脚本; - **可以**包含名为**
js
**和**css
**的键,这些键列出要加载到匹配页面中的脚本和/或样式表;以及 - **可以**包含许多其他属性,这些属性控制内容脚本加载方式和时间的更精细方面。
可以在下表中找到可以包含的所有键的详细信息。
名称 | 类型 | 描述 |
---|---|---|
all_frames |
布尔值 |
默认为 |
css |
数组 |
相对于 文件按给定的顺序注入,并在 注意:Firefox 会解析注入的 CSS 文件中相对于 CSS 文件本身的 URL,而不是相对于其注入到的页面。 |
exclude_globs |
数组 |
包含通配符的字符串数组。请参阅下面的匹配 URL 模式。 |
exclude_matches |
数组 |
匹配模式数组。请参阅下面的匹配 URL 模式。 |
include_globs |
数组 |
包含通配符的字符串数组。请参阅下面的匹配 URL 模式。 |
js |
数组 |
相对于 文件按给定的顺序注入。这意味着,例如,如果您在此处包含 jQuery,然后是另一个内容脚本,如下所示 json
然后, |
match_about_blank |
布尔值 |
如果打开或创建此页面的页面的 URL与 这对于在 URL 为 例如,假设您有一个类似于以下内容的 json
如果用户加载
注意:从 Firefox 52 版本开始支持 请注意,在 Firefox 中,即使您在 |
match_origin_as_fallback |
布尔值 |
当true 时,当其来源与matches 中的模式匹配时,代码将注入到about: 、data: 和blob: 页面中,即使文档来源不透明(由于使用 CSP 或 iframe 沙箱)。matches 中的匹配模式必须指定通配符路径 glob。默认为false 。 |
matches |
数组 |
这是唯一必填键。 |
run_at |
字符串 |
此选项确定何时注入
默认值为 |
world |
字符串 |
脚本在其执行的 JavaScript 世界中。
默认值为 |
匹配 URL 模式
"content_scripts"
键根据 URL 匹配将内容脚本附加到文档:如果文档的 URL 与键中的规范匹配,则将附加脚本。"content_scripts"
中有四个属性可用于此规范
要匹配这些属性之一,URL 必须至少匹配其数组中的一个项目。例如,给定一个类似于以下内容的属性
"matches": ["*://*.example.org/*", "*://*.example.com/*"]
http://example.org/
和http://example.com/
都将匹配。
由于matches
是唯一必填键,因此其他三个键用于进一步限制匹配的 URL。要匹配整个键,URL 必须
- 匹配
matches
属性 - 并且匹配
include_globs
属性(如果存在) - 并且不匹配
exclude_matches
属性(如果存在) - 并且不匹配(如果存在)
exclude_globs
属性。
通配符
通配符只是一个可能包含通配符的字符串。
有两种类型的通配符,你可以在同一个通配符中组合它们。
*
匹配零个或多个字符。?
匹配正好一个字符。
例如:"*na?i"
将匹配 "illuminati"
和 "annunaki"
,但不匹配 "sagnarelli"
。
示例
"content_scripts": [
{
"matches": ["*://*.mozilla.org/*"],
"js": ["borderify.js"]
}
]
这会将单个内容脚本 borderify.js
注入到 mozilla.org
或其任何子域下的所有页面中,无论是在 HTTP 还是 HTTPS 上提供服务。
"content_scripts": [
{
"exclude_matches": ["*://mdn.org.cn/*"],
"matches": ["*://*.mozilla.org/*"],
"js": ["jquery.js", "borderify.js"]
}
]
这会将两个内容脚本注入到 mozilla.org
或其任何子域下的所有页面中,除了 developer.mozilla.org
,无论是在 HTTP 还是 HTTPS 上提供服务。
内容脚本看到 DOM 的相同视图,并且按照它们在数组中出现的顺序注入,因此 borderify.js
可以看到 jquery.js
添加的全局变量。
浏览器兼容性
BCD 表格仅在浏览器中加载