Saya memiliki ekstensi Chrome sederhana yang menggunakan fitur skrip konten untuk memodifikasi situs web. Lebih khusus lagi, background-image
situs web tersebut.
Untuk beberapa alasan saya sepertinya tidak dapat menggunakan gambar lokal, meskipun mereka dikemas dalam ekstensi.
body {
background: #000 url('image.jpg') !important;
background-repeat: repeat !important;
}
Itu saja, CSS paling sederhana ... tetapi tidak akan berhasil. Browser tidak memuat gambar.
css
google-chrome-extension
background-image
Bjarki Jonasson
sumber
sumber
Jawaban:
URL gambar Anda akan terlihat seperti ini
chrome-extension://<EXTENSION_ID>/image.jpg
Anda akan lebih baik mengganti css melalui javascript. Dari dokumen :
sumber
Chrome memiliki dukungan i18n yang memberikan kemampuan untuk mereferensikan ekstensi Anda di CSS Anda. Saya menyimpan gambar saya dalam folder gambar di ekstensi, jadi referensi aset di CSS seperti:
sumber
Ada banyak jawaban dan solusi lama untuk pertanyaan ini.
Mulai Agustus 2015 (menggunakan Chrome 45 dan Manifes versi 2), "praktik terbaik" saat ini untuk menautkan ke gambar lokal dalam Ekstensi Chrome adalah pendekatan berikut.
1) Tautkan ke aset di CSS Anda menggunakan jalur relatif ke folder gambar ekstensi Anda:
2) Tambahkan aset individu ke bagian web_accessible_resources dari file manifest.json ekstensi Anda :
Catatan: Metode ini cocok untuk beberapa file, tetapi tidak dapat diskalakan dengan baik dengan banyak file.
Sebaliknya, metode yang lebih baik adalah memanfaatkan dukungan Chrome untuk pola kecocokan guna memasukkan semua file ke dalam daftar putih dalam direktori tertentu:
Menggunakan pendekatan ini akan memungkinkan Anda dengan cepat dan mudah menggunakan gambar di file CSS Ekstensi Chrome Anda menggunakan metode yang didukung secara native.
sumber
Salah satu opsinya adalah mengonversi gambar Anda ke base64:
lalu masukkan datanya langsung ke css Anda seperti:
Meskipun ini mungkin bukan pendekatan yang ingin Anda gunakan saat mengembangkan laman web secara teratur , ini adalah opsi yang bagus karena beberapa kendala dalam membangun Ekstensi Chrome.
sumber
Solusi saya.
Dengan Menifest v2 Anda perlu menambahkan
web_accessible_resources
file dan kemudian menggunakannyachrome-extension://__MSG_@@extension_id__/images/pattern.png
sebagai url di file css Anda.CSS:
Manifest.json
ps Manifest.json Anda mungkin terlihat berbeda dengan yang ini.
sumber
Hanya-versi-CSS ini bekerja di lingkungan ekstensi (halaman aplikasi, halaman popup, halaman latar belakang, halaman opsi) serta file CSS content_scripts.
Dalam file .less, saya selalu menetapkan variabel di awal:
Kemudian, jika Anda ingin merujuk ke gambar ekstensi-sumber-lokal-seperti, gunakan:
sumber
Satu hal yang perlu disebutkan adalah bahwa di web_accessible_resources Anda dapat menggunakan karakter pengganti. Jadi, bukan
"gambar / pola.png"
Kamu bisa memakai
"gambar-gambar/*"
sumber
Sekadar klarifikasi, menurut dokumentasi , setiap file dalam ekstensi juga dapat diakses dengan URL absolut seperti ini:
Perhatikan bahwa
<extensionID>
ini adalah pengenal unik yang dihasilkan oleh sistem ekstensi untuk setiap ekstensi. Anda dapat melihat ID untuk semua ekstensi yang Anda muat dengan membuka URL chrome: // extensions . Ini<pathToFile>
adalah lokasi file di bawah folder teratas ekstensi; itu sama dengan URL relatif....
Mengubah gambar latar belakang di CSS:
Mengubah gambar latar belakang di CSS melalui JavaScript:
Mengubah gambar latar belakang di CSS melalui jQuery:
sumber