簡體   English   中英

通過chrome擴展選項有條件地注入CSS

[英]Inject CSS conditionally via chrome extension options

我有一個帶有選項頁的chrome擴展程序,其中包含幾個復選框,用於啟用或禁用某些CSS樣式(在一個特定的匹配URL上)。

當前,復選框truefalse值存儲在chrome.storage 存儲或獲取復選框已選中狀態沒有問題。

我的問題是:如何根據復選框的選中狀態將CSS注入特定頁面?

的manifest.json

"permissions": [
  "storage",
  "tabs",
  "management",
  "https://www.some-specific-website/home/*"
]

如果正確配置了清單,則內容腳本將僅在匹配的頁面上執行。 詳情請參閱此處: https//developer.chrome.com/extensions/content_scripts

至於注入CSS,取決於您要執行的操作。 您將需要從內容腳本中的存儲中讀取內容,以明顯了解復選框的狀態,如果找到,則需要注入。

您要注入的內容是否很小? 如果是這樣,最好通過使用一些JavaScript來做到這一點,方法是在Dom中選擇所需的元素,然后使用要設置的屬性向它們添加一個類。 就其價值而言,添加類可能是更改某些元素的CSS而不是直接編輯其樣式的最有效方法。

如果它很大,您可以如上所述在選項卡上使用insertCSS方法。 您需要在清單文件中添加tabs權限(我認為它稱為activeTab或其他奇怪的東西)。 從那里,獲取當前選項卡,然后使用原始CSS代碼或更高級的CSS代碼調用insertCSS,該文件是對CSS文件的文件引用以及當前選項卡的ID(將其應用於其)。 請參閱此處以獲取更多信息: https : //developer.chrome.com/extensions/tabs#method-insertCSS

另外,這里的chrome擴展示例頁面中有一個包含相關示例的zip文件: https : //developer.chrome.com/extensions/examples/api/storage/stylizr.zip

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM