J'ai une simple extension Chrome qui utilise la fonction de script de contenu pour modifier un site Web. Plus précisément, background-image
ledit site Web.
Pour une raison quelconque, je n'arrive pas à pouvoir utiliser des images locales, même si elles sont emballées dans l'extension.
body {
background: #000 url('image.jpg') !important;
background-repeat: repeat !important;
}
Voilà, le CSS le plus simple ... mais cela ne fonctionnera pas. Le navigateur ne charge pas l'image.
css
google-chrome-extension
background-image
Bjarki Jonasson
la source
la source
Réponses:
L'URL de votre image doit ressembler à
chrome-extension://<EXTENSION_ID>/image.jpg
Vous feriez mieux de remplacer css par javascript. À partir de la documentation :
la source
Chrome prend en charge i18n qui offre la possibilité de référencer votre extension dans votre CSS. Je garde mes images dans un dossier d'images dans l'extension, donc référencez les actifs dans le CSS comme suit:
la source
Il y a beaucoup de réponses et de solutions plus anciennes à cette question.
Depuis août 2015 (avec Chrome 45 et Manifest version 2), la "meilleure pratique" actuelle pour créer des liens vers des images locales dans les extensions Chrome est l'approche suivante.
1) Créez un lien vers l'élément dans votre CSS en utilisant un chemin relatif vers le dossier d'images de votre extension:
2) Ajoutez l'actif individuel à la section web_accessible_resources du fichier manifest.json de votre extension :
Remarque: cette méthode convient à quelques fichiers, mais ne s'adapte pas bien à de nombreux fichiers.
Au lieu de cela, une meilleure méthode consiste à tirer parti de la prise en charge de Chrome pour les modèles de correspondance pour mettre en liste blanche tous les fichiers d'un répertoire donné:
L'utilisation de cette approche vous permettra d'utiliser rapidement et sans effort des images dans le fichier CSS de votre extension Chrome à l'aide de méthodes prises en charge nativement.
la source
Une option serait de convertir votre image en base64:
puis mettez les données directement dans votre css comme:
Bien que ce ne soit peut-être pas une approche que vous voudriez utiliser lors du développement régulier d'une page Web , c'est une excellente option en raison de certaines des contraintes liées à la création d'une extension Chrome.
la source
Ma solution.
Avec Menifest v2, vous devez ajouter
web_accessible_resources
au fichier, puis l'utiliserchrome-extension://__MSG_@@extension_id__/images/pattern.png
comme URL dans votre fichier css.CSS:
Manifest.json
ps Votre manifest.json peut être différent de celui-ci.
la source
Cette version CSS fonctionne uniquement dans l' environnement d'extension (page d'application, page contextuelle, page d'arrière-plan, page d'options) ainsi que dans le fichier CSS content_scripts.
Dans le fichier .less, je règle toujours une variable au début:
Ensuite, si vous souhaitez faire référence à des images de type extension-local-resource, utilisez:
la source
Une chose à mentionner est que dans les web_accessible_resources, vous pouvez utiliser des caractères génériques. Donc au lieu de
"images / pattern.png"
Vous pouvez utiliser
"images/*"
la source
Juste pour clarifier, selon la documentation , chaque fichier dans une extension est également accessible par une URL absolue comme celle-ci:
Notez qu'il
<extensionID>
s'agit d'un identifiant unique que le système d'extension génère pour chaque extension. Vous pouvez voir les ID de toutes vos extensions chargées en accédant à l'URL chrome: // extensions . le<pathToFile>
est l'emplacement du fichier sous le dossier supérieur de l'extension; c'est la même chose que l'URL relative....
Changer l'image de fond en CSS:
Modification de l'image de fond en CSS via JavaScript:
Modification de l'image d'arrière-plan en CSS via jQuery:
la source