Comment injecter des CSS dans la page web par extension Chrome?
Je ne sais pas comment faire pour injecter du CSS dans une page web grâce à une extension Chrome. Je suis en train d'injecter ce dans une page web:
body {
background: #000 !important;
}
a {
color: #777 !important;
}
Voici mon manifeste.json:
{
"update_url":"http://clients2.google.com/service/update2/crx",
"name": "Test Extension",
"version": "1.0",
"description": "This is a test extension for Google Chrome.",
"icons": { "16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png" },
"background_page": "background.html",
"browser_action": {
"default_icon": "icon19.png"
},
"content_scripts": [
{
"matches": ["http://test-website.com/*"],
"js": ["js/content-script.js"]
}
],
"permissions": [ "tabs", "http://test-website.com/*" ]
}
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir à ajouter une ligne supplémentaire dans votre fichier manifeste:
Le fichier CSS tel que défini dans
"css": ["..."]
sera ajouté à chaque page qui correspond à l'emplacement comme indiqué dansmatches
.Si vous êtes l'élaboration d'une extension Chrome, assurez-vous que vous avez un oeil à ces pages:
Vous pouvez également injecter un fichier css dans un ou plusieurs onglet de contenu à l'aide de la syntaxe suivante détaillées sur le Chrome Onglets de la page web API:
Vous aurez d'abord besoin de l'ID de votre onglet cible, bien sûr.
L'Extension Chrome documentation n'est pas de discuter de comment la injecté CSS est interprété, mais le fait est que les fichiers CSS qui sont injectés dans une page web, par cette méthode, soit en les incluant dans le manifeste, sont interprétées comme des feuilles de style utilisateur.
À cet égard, il est important de noter que si vous ne injecter des feuilles de style en utilisant ces méthodes, elles seront limitées à un moyen essentiel ( au moins, comme de Chrome v. 19 ): google Chrome ignore "!important" directives dans les feuilles de style utilisateurs. Votre injecté des règles de style va être emporté par quoi que ce soit inclus dans la page comme il a été écrit.
Une façon de contourner, si vous voulez éviter d'injecter de style en ligne règles, est la suivante (j'utilise jQuery pour l'insertion proprement dite, mais il pourrait être fait directement avec Javascript):
Vous pouvez ensuite mettre la feuille de style dans votre extension du dossier styles, mais vous n'aurez pas besoin de liste de n'importe où sur le manifeste. La partie pertinente ci-dessus est que vous allez utiliser le chrome API pour obtenir votre feuille de style de l'URL, puis brancher que dans le link href valeur. Maintenant, votre feuille de style sera donné une priorité plus élevée, et vous pouvez utiliser le "!important" de la directive en cas de besoin.
C'est la seule solution qui fonctionne pour moi dans la dernière version de Chrome.