"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi suis-je incapable d'injecter du CSS dans des pages Web à l'aide de scripts de contenu pour les extensions ?

Pourquoi suis-je incapable d'injecter du CSS dans des pages Web à l'aide de scripts de contenu pour les extensions ?

Publié le 2024-11-18
Parcourir:583

Why Am I Unable to Inject CSS into Webpages Using Content Scripts for Extensions?

Problèmes d'injection CSS dans les scripts de contenu pour les extensions

Malgré la définition de l'injection CSS dans le manifeste, votre fichier CSS reste absent de la page Web. Voici les causes et solutions possibles :

Raison : Règles CSS en conflit

La feuille de style est injectée mais n'est pas appliquée car d'autres styles remplacent ses règles.

Solution :

  • Augmenter la spécificité CSS : Ajoutez des sélecteurs plus spécifiques à vos règles CSS.
  • Utilisez " !important": Ajoutez à chaque règle "!important" pour remplacer les styles existants.

Raison : Limite d'injection de script de contenu

Manifest version 3 empêche les scripts de contenu d'injecter directement du CSS.

Solution : Injectez du CSS via un script de contenu comme suit :

myScript.js :

var style = document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.href = chrome.extension.getURL('myStyles.css');
(document.head||document.documentElement).appendChild(style);

manifest.json:

"web_accessible_resources": ["myStyles.css"]

Remarque : Lors de l'utilisation de Manifest version 2, la clé "web_accessible_resources" est requise pour autoriser l'accès au fichier CSS à partir d'une page sans extension.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3