content_scripts
Type | Tableau |
---|---|
Obligatoire | Non |
Exemple |
json
|
Ordonne au navigateur de charger des scripts de contenu dans les pages web dont l'URL correspond à un modèle donné.
Cette clé est un tableau. Chaque élément est un objet qui :
- doit contenir une clé nommée
matches
, qui spécifie les modèles d'URL à reconnaître afin que les scripts soient chargés ; - peut contenir des clés nommées
js
etcss
, qui listent les scripts à charger dans les pages correspondantes ; - peut contenir un certain nombre d'autres propriétés qui contrôlent des aspects plus fins correspondant à quand et comment les scripts de contenu sont chargés.
Le tableau ci-dessous présente le détail de toutes les clés que vous pouvez inclure.
Nom | Type | Description |
---|---|---|
all_frames |
Booléen |
Par défaut à |
css |
Tableau |
Un tableau de chemins, relatifs à manifest.json, référençant les fichiers CSS qui seront injectés dans les pages correspondantes. Les fichiers sont injectés dans l'ordre donné, et avant que le DOM ne soit chargé. Note : Firefox résout les URLs dans les fichiers CSS injectés par rapport au fichier CSS lui-même, plutôt que par rapport à la page dans laquelle il est injecté. |
exclude_globs |
Tableau |
Un tableau de chaînes contenant des caractères génériques. Voir les modèles de correspondance d'URL ci-dessous. |
exclude_matches |
Tableau |
Un tableau de modèles de correspondance. Voir les modèles de correspondance d'URL ci-dessous. |
include_globs |
Tableau |
Un tableau de chaînes contenant des caractères génériques. Voir les modèles de correspondance d'URL ci-dessous. |
js |
Tableau |
Un tableau de chemins, relatifs au fichier manifest.json, référençant les fichiers JavaScript qui seront injectés dans les pages correspondantes. Les fichiers sont injectés dans l'ordre indiqué. Cela signifie que, par exemple, si vous incluez ici jQuery suivi d'un autre script de contenu, comme ceci : json
alors my-content-script.js peut utiliser jQuery.
Les fichiers sont injectés au moment spécifié par
|
match_about_blank |
Booléen |
Insère les scripts de contenu dans les pages dont l'URL est
Ceci est particulièrement utile pour exécuter des scripts dans des
iframes vides, dont l'URL
est
Par exemple, supposons que vous disposiez d'une clé de
json
Si l'utilisateur ou l'utilisatrice charge
|
matches |
Tableau |
Un ensemble de modèles de correspondance. Voir les modèles de correspondance d'URL ci-dessous. C'est la seule clé obligatoire. |
run_at |
Chaîne |
Cette option détermine quand les scripts spécifiés dans
La valeur par défaut est
Dans tous les cas, les fichiers dans |
Les modèles de correspondance d'URL
La clé content_scripts
associe les scripts de contenu aux documents en fonction de la correspondance des URL : si l'URL du document correspond à la spécification de la clé, le script sera joint. Il existe quatre propriétés dans content_scripts
que vous pouvez utiliser pour cette spécification :
matches
: un tableau de match patterns (modèles).exclude_matches
: un tableau de match patterns.include_globs
: un tableau de globs (caractères génériques).exclude_globs
: un tableau de globs.
Pour associer une de ces propriétés, une URL doit correspondre à au moins un des éléments de son tableau. Par exemple, donner une propriété comme :
"matches": ["*://*.example.org/*", "*://*.example.com/*"]
Les deux adresses http://example.org/
et http://example.com/
correspondront.
Étant donné que matches
est la seule clé obligatoire, les trois autres clés sont utilisées pour limiter davantage les URL qui correspondent. Pour associer la clé dans son ensemble, une URL doit :
- Correspondre à la propriété
matches
; - ET associer à la propriété
include_globs
, si présent ; - ET NE PAS correspondre à la propriété
exclude_matches
, si présent ; - ET NE PAS correspondre à la propriété
exclude_globs
, si présent.
globs
Un « glob » est juste une chaîne qui peut contenir des caractères génériques. Il existe deux types de caractères génériques, et vous pouvez les combiner dans le même glob :
"*"
correspond à zéro ou plus de caractères"?"
correspond exactement à un caractère.
Par exemple : "*na?i"
correspond à "illuminati"
et à "annunaki"
, mais pas à "sagnarelli"
.
Exemple
"content_scripts": [
{
"matches": ["*://*.mozilla.org/*"],
"js": ["borderify.js"]
}
]
Cela injecte un seul script de contenu borderify.js dans toutes les pages sous mozilla.org
ou l'un de ses sous-domaines, qu'ils soient fournis via HTTP ou HTTPS.
"content_scripts": [
{
"exclude_matches": ["*://developer.mozilla.org/*"],
"matches": ["*://*.mozilla.org/*"],
"js": ["jquery.js", "borderify.js"]
}
]
Cela implique deux scripts de contenu dans toutes les pages sous mozilla.org
ou l'un de ses sous-domaines, à l'exception de developer.mozilla.org
, qu'il s'agisse de HTTP ou HTTPS.
Les scripts de contenu ont la même vue du DOM et sont injectés dans l'ordre où ils apparaissent dans le tableau, de sorte que borderify.js peut voir les variables globales ajoutées par jquery.js.
Compatibilité des navigateurs
BCD tables only load in the browser