Eu tenho uma extensão simples do Chrome que usa o recurso de script de conteúdo para modificar um site. Mais especificamente, o background-image
do referido site.
Por algum motivo, não consigo usar imagens locais, embora elas estejam incluídas na extensão.
body {
background: #000 url('image.jpg') !important;
background-repeat: repeat !important;
}
É isso, o CSS mais simples ... mas não vai funcionar. O navegador não carrega a imagem.
css
google-chrome-extension
background-image
Bjarki Jonasson
fonte
fonte
Respostas:
O URL da sua imagem deve ser semelhante a
chrome-extension://<EXTENSION_ID>/image.jpg
Seria melhor substituir o css pelo javascript. Dos documentos :
fonte
O Chrome tem suporte para i18n que fornece a capacidade de referenciar sua extensão em seu CSS. Eu mantenho minhas imagens em uma pasta de imagens na extensão, para fazer referência a recursos no CSS da seguinte forma:
fonte
Existem muitas respostas e soluções antigas para essa pergunta.
Em agosto de 2015 (usando o Chrome 45 e a versão 2 do Manifesto), a "prática recomendada" atual para vincular a imagens locais nas extensões do Chrome é a seguinte abordagem.
1) Link para o ativo em seu CSS usando um caminho relativo para a pasta de imagens de sua extensão:
2) Adicione o ativo individual à seção web_accessible_resources do arquivo manifest.json de sua extensão :
Observação: este método é adequado para alguns arquivos, mas não é compatível com muitos arquivos.
Em vez disso, um método melhor é aproveitar o suporte do Chrome para padrões de correspondência para colocar na lista de permissões todos os arquivos em um determinado diretório:
Usar essa abordagem permitirá que você use imagens de maneira rápida e fácil no arquivo CSS da extensão do Chrome usando métodos com suporte nativo.
fonte
Uma opção seria converter sua imagem em base64:
e coloque os dados diretamente em seu css, como:
Embora essa possa não ser uma abordagem que você gostaria de usar ao desenvolver regularmente uma página da web , é uma ótima opção devido a algumas das restrições de construção de uma extensão do Chrome.
fonte
Minha solução.
Com o Menifest v2, você precisa adicionar
web_accessible_resources
ao arquivo e, em seguida, usarchrome-extension://__MSG_@@extension_id__/images/pattern.png
como url em seu arquivo css.CSS:
Manifest.json
ps Seu manifest.json pode ser diferente deste.
fonte
Esta versão CSS funciona apenas no ambiente de extensão (página do aplicativo, página pop-up, página de fundo, página de opção) , bem como arquivo CSS content_scripts.
No arquivo .less, sempre defino uma variável no início:
Mais tarde, se você quiser se referir a imagens de recurso local de extensão, use:
fonte
Uma coisa a mencionar é que no web_accessible_resources você pode usar curingas. Então, em vez de
"images / pattern.png"
Você pode usar
"imagens / *"
fonte
Só para esclarecer, de acordo com a documentação , todo arquivo em uma extensão também pode ser acessado por uma URL absoluta como esta:
Observe que
<extensionID>
é um identificador exclusivo que o sistema de extensão gera para cada extensão. Você pode ver os IDs de todas as extensões carregadas acessando o URL chrome: // extensions . O<pathToFile>
é a localização do arquivo na pasta superior da extensão; é igual ao URL relativo....
Alterar a imagem de fundo em CSS:
Alterar a imagem de fundo em CSS por meio de JavaScript:
Alterando a imagem de fundo em CSS por meio do jQuery:
fonte