- Firefox-Version
- 155.0.1
- Betriebssystem
- Win11Pro
Um Shadow-Dateien nutzen zu können gibt es schon länger diese Möglichkeit, ShadowRoot: Neue Aufruf-Methode für CSS-Regeln. Eine genaue Beschreibung was Shadow Dateien sind, bzw. wann man sie benötigt wird dort ausführlich beschrieben. Kurz gefasst, dafür muss erst ein userChromeShadow.uc.js Skript installiert werden. Weiterhin eine Datei userChromeShadow.css im Ordner chrome erstellt werden, wo der aufzurufende Code eingetragen wird. Einige Nutzer arbeiten mit @import-Regeln, die für jeden einzelnen CSS-Code in die userChromeShadow.css eingetragen werden müssen, und einem Ordner mit dem Namen CSSShadow im Ordner chrome, wo die CSS-Dateien abgelegt sind. Der Nachteil hierbei besteht darin, dass immer der vollständige lange Pfad zur CSS-Datei vorgegeben werden muss, was dann so aussieht @import url("file:///B:/Firefox Test/Nightly1/Profilordner/chrome/CSSShadow/Hamburger Menü Umrandung ohne border-radius.css");.
Mit diesem neuen Skript, erstellt mit Hilfe einer KI, kann man auf die Datei userChromeShadow.css ganz verzichten. Das neue Skript erkennt jede Datei im Ordner CSSShadow. Somit erspart man sich nicht nur eine Datei, sondern auch die jeweilige @import Regel.
Wer es testen mag:
// ==UserScript==
// @name ShadowCSSLoader.uc.js
// @namespace ShadowCssLoader
// @include main
// @charset UTF-8
// @version 1.0.02.09.2026
// @description Aus dem Ordner chrome/CSSShadow werden alle enthaltenen CSS-Dateien automatisch geladen
// eine userChromeShadow.css ist nicht mehr erforderlich
// @author erstellt mit KI
// @compatibility Firefox Version 155+
// ==/UserScript==
(async function() {
if (location != "chrome://browser/content/browser.xhtml") {
return;
}
try {
const folder = PathUtils.join(
PathUtils.profileDir,
"chrome",
"CSSShadow"
);
console.log("CSSShadow-Ordner:");
console.log(folder);
const files = await IOUtils.getChildren(folder);
console.log(
"Einträge im CSSShadow-Ordner: " + files.length
);
let cssIn = "";
let cssCount = 0;
for (const file of files) {
const name = PathUtils.filename(file);
console.log("Gefunden: " + name);
if (!/\.css$/i.test(name)) {
continue;
}
const text = await IOUtils.readUTF8(file);
cssIn +=
"\n\n/* BEGINN " + name + " */\n" +
text +
"\n/* ENDE " + name + " */\n";
cssCount++;
console.log(
"CSS gelesen: " + name +
" (" + text.length + " Zeichen)"
);
}
console.log(
"CSS-Dateien gelesen: " + cssCount
);
console.log(
"Gesamtzeichen: " + cssIn.length
);
if (cssCount === 0) {
throw new Error(
"Keine CSS-Dateien gefunden in:\n" + folder
);
}
const sss = Cc[
"@mozilla.org/content/style-sheet-service;1"
].getService(
Ci.nsIStyleSheetService
);
const uri = makeURI(
"data:text/css;charset=UTF-8," +
encodeURIComponent(cssIn)
);
sss.loadAndRegisterSheet(
uri,
sss.AUTHOR_SHEET
);
console.log(
"UserChromeShadow: Stylesheet registriert"
);
} catch (e) {
console.error(
"UserChromeShadow-Fehler: " +
e.name + ": " + e.message
);
}
})();
Alles anzeigen