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

DDD
リリース: 2024-11-11 05:02:03
オリジナル
608 人が閲覧しました

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

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

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

理由: CSS ルールが競合しています

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

解決策:

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

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

マニフェスト バージョン 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 を使用する場合、へのアクセスを許可するには「web_accessible_resources」キーが必要です。非拡張ページの CSS ファイル。

以上が拡張機能のコンテンツ スクリプトを使用して Web ページに CSS を挿入できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート