「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 拡張機能のコンテンツ スクリプトを使用して Web ページに CSS を挿入できないのはなぜですか?

拡張機能のコンテンツ スクリプトを使用して Web ページに CSS を挿入できないのはなぜですか?

2024 年 11 月 18 日に公開
ブラウズ:608

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

拡張機能のコンテンツ スクリプトにおける CSS インジェクションの問題

マニフェストで CSS インジェクションを定義しているにもかかわらず、CSS ファイルが Web ページに存在しないままになります。考えられる原因と解決策は次のとおりです:

理由: Conflicting CSS Rules

スタイル シートは挿入されましたが、他のスタイルがそのルールをオーバーライドしているため適用されません。

解決策:

  • CSS の詳細度を高める: CSS ルールにさらに具体的なセレクターを追加します。
  • 「」を使用します。 ! important": 既存のスタイルをオーバーライドするには、すべてのルールの末尾に「! important」を付けます。

Reason: コンテンツ スクリプト インジェクション制限

マニフェスト バージョン 3コンテンツ スクリプトによる CSS の直接挿入を制限します。

解決策: 次のようにコンテンツ スクリプト経由で CSS を挿入します:

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"]

注: マニフェスト バージョン 2 を使用する場合、非拡張ページから CSS ファイルへのアクセスを許可するには、「web_accessible_resources」キーが必要です。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3