„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum kann ich mithilfe von Inhaltsskripten für Erweiterungen kein CSS in Webseiten einfügen?

Warum kann ich mithilfe von Inhaltsskripten für Erweiterungen kein CSS in Webseiten einfügen?

Veröffentlicht am 18.11.2024
Durchsuche:443

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

CSS-Injection-Probleme in Inhaltsskripten für Erweiterungen

Obwohl CSS-Injection im Manifest definiert ist, bleibt Ihre CSS-Datei auf der Webseite verschwunden. Hier sind die möglichen Ursachen und Lösungen:

Grund: Widersprüchliche CSS-Regeln

Das Stylesheet wird eingefügt, aber nicht angewendet, da andere Stile seine Regeln überschreiben.

Lösung:

  • CSS erhöhen Spezifität: Fügen Sie Ihren CSS-Regeln spezifischere Selektoren hinzu.
  • Verwenden Sie „!important“: Fügen Sie jeder Regel „!important“ als Suffix hinzu, um vorhandene Stile zu überschreiben.

Grund: Content Script Injection Limit

Manifest Version 3 begrenzt den Inhalt Skripte durch direktes Einfügen von CSS.

Lösung: Fügen Sie CSS über ein Inhaltsskript wie folgt ein:

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

Hinweis: Bei Verwendung von Manifest Version 2 ist die Der Schlüssel „web_accessible_resources“ ist erforderlich, um den Zugriff auf die CSS-Datei von einer Seite ohne Erweiterung zu ermöglichen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3