1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Boersenfeger

Beiträge von Boersenfeger

  • Firefox öffnet immer eine Erweiterung als neuen Tab

    • Boersenfeger
    • 15. April 2025 um 14:21

    Was ist denn unter Startseite eingetragen?

    about:preferences#home

  • Suche_Automatisch_Leeren.uc.js funktioniert nicht mehr

    • Boersenfeger
    • 13. April 2025 um 15:32

    Son Goku was mich betrifft gern geschehen, bin aber auch nur Nutzer!

    Beitrag 31 hat deinen Beitrag auch nur in eine besser lesende Form gebracht. ;)

  • Suche_Automatisch_Leeren.uc.js funktioniert nicht mehr

    • Boersenfeger
    • 13. April 2025 um 14:53

    Teste mal:

    JavaScript
    	/* Suchfeld leeren nach 4 Sekunden */
    	/* Author @aborix */
    
    	setTimeout(function() {
    	    if (location.href !== 'chrome://browser/content/browser.xhtml') return;
    	if (!window.searchbar)
          return;
    	var searchbar = document.getElementById('searchbar')
    	if (!searchbar)
          return;
    	var textbox = searchbar.textbox;
    	var tId;
    	textbox.addEventListener('input', function() {
          clearTimeout(tId);
          tId = setTimeout(function() {
             textbox.value = '';
             document.getElementById('searchbar').hidePopup();
          }, 4000);
    	});
    	}, 0);
    	
    
    /* Suchfeld sofort leeren nach Start der Suche */
    /* Author @aborix */
    /* Angepasst wieder durch Sören und milupo*/
    /*https://www.camp-firefox.de/forum/thema/135558-skript-f%C3%BCr-suchfeld-leeren-nach-start-der-suche/?postID=1212807#post1212807 */
    
    //https://www.camp-firefox.de/forum/thema/136363-offenbar-funktionieren-alle-benutzerskripte-nicht-mehr-im-nightly/?postID=1227649#post1227649
    
    /* Suchfeld automatisch leeren */
    
        (function() {
        const lazy = {};
    
        ChromeUtils.defineESModuleGetters(lazy, {   
        FormHistory: "resource://gre/modules/FormHistory.sys.mjs",
        });
    
        var searchbar = document.getElementById("searchbar");
        
        searchbar.doSearch = function(aData, aWhere, aEngine, aParams, aOneOff) {
        let textBox = this._textbox;
    
          if (aData && !PrivateBrowsingUtils.isWindowPrivate(window) && lazy.FormHistory.enabled) {
            lazy.FormHistory.update({
                op: "bump",
                fieldname: textBox.getAttribute("autocompletesearchparam"),
                value: aData,
            }, {
                handleError(aError) {
                  Cu.reportError("Saving search to form history failed: " + aError.message);
                },
            });
          }
    
          let engine = aEngine || this.currentEngine;
          let submission = engine.getSubmission(aData, null, "searchbar");
          let telemetrySearchDetails = this.telemetrySearchDetails;
          this.telemetrySearchDetails = null;
          if (telemetrySearchDetails && telemetrySearchDetails.index == -1) {
            telemetrySearchDetails = null;
          }
    
          const details = {
            isOneOff: aOneOff,
            isSuggestion: (!aOneOff && telemetrySearchDetails),
            selection: telemetrySearchDetails,
          };
         // BrowserSearch.recordSearchInTelemetry(engine, "searchbar", details);
    
          let params = {
            postData: submission.postData,
          };
          if (aParams) {
            for (let key in aParams) {
              params[key] = aParams[key];
            }
          }
          openTrustedLinkIn(submission.uri.spec, "tab", params);
    
          this.value = '';
              
          this.currentEngine = this.engines ? this.engines[0] : this._engines[0];
        };
    
        }());
    Alles anzeigen
  • Skripte funktionieren nicht mehr

    • Boersenfeger
    • 13. April 2025 um 10:59

    Ja, in der Tat, ich hätte drauf hinweisen müssen und habe dies noch oben eingefügt.:)

  • Skripte funktionieren nicht mehr

    • Boersenfeger
    • 12. April 2025 um 18:44

    Damit wird hier der geänderte CSS aktiv.

  • Skripte funktionieren nicht mehr

    • Boersenfeger
    • 12. April 2025 um 17:53
    Zitat von milupo

    Bei CSS reicht ein einfacher Neustart von Firefox.

    ..oder einmal die Tastenkombi ALT + R ;)

    Edit:

    Mit folgendem Script kann man dies unter anderem erreichen:

    Code
    // ==UserScript==
    // @name           UserCSSLoader
    // @description    CSS-Codes - Styles laden und verwalten
    // @namespace      http://d.hatena.ne.jp/Griever/
    // @author         Griever
    // @include        main
    // @license        MIT License
    // @compatibility  Firefox 116*
    // @charset        UTF-8
    // @version        0.0.4K+
    // @note           Aktualisierungen von BrokenHeart und Speravir - www.camp-firefox.de
    // @note           BrokenHearts Änderung: https://www.camp-firefox.de/forum/thema/138792/?postID=1263814#post1263814
    // @note           Fx92: getURLSpecFromFile() -> getURLSpecFromActualFile()
    // @note           AUTHOR_SHEET-Unterstützung hinzugefügt, wichtig: Dateiendung muss .author.css sein!
    // @note           Version 0.0.4.g ermöglicht "Styles importieren" per Mittelklick und Verwendung
    // @note           eines anderen Dateimanagers (siehe in Konfiguration), ergänzt um einen
    // @note           Parameter für den Dateimanager (vFMParameter in der Konfiguration) von aborix
    // @note           Frei verschiebbare Schaltfläche eingebaut von aborix
    // @note           0.0.4 Remove E4X
    // @note           CSSEntry-Klasse erstellt
    // @note           Style-Test-Funktion überarbeitet (später entfernt)
    // @note           Wenn die Datei gelöscht wurde, CSS beim Neu-Erstellen und Löschen des Menüs abbrechen
    // @note           uc einlesen .uc.css temporäre Korrespondenz zum erneuten Lesen
    // ==/UserScript==
    /****** Bedienungsanleitung ******
    CSS-Ordner im Chrome-Ordner erstellen, CSS-Dateien dort ablegen und speichern.
    Diejenigen, deren Dateiname mit "xul-" beginnen, diejenigen, die mit ".as.css" enden, sind AGENT_SHEET, 
    alle anderen außer USER_SHEET werden gelesen. Da der Inhalt der Datei nicht überprüft wird,
    darauf achten, die Angabe von @namespace nicht zu vergessen!
    CSS-Menü wird zur Menüleiste hinzugefügt.
    Linksklick auf Stil, zum Aktivieren/Deaktivieren,
    Mittelklick auf Stil zum Aktivieren/Deaktivieren, ohne Menü zu schließen,
    Rechtsklick auf Stil zum Öffnen im Editor,
    Strg+Linksklick zum Anzeigen im Dateimanager.
    Die Tastenkombinationen können im Menü eingeblendet werden (bzw. in einem Fall ausgeblendet),
    dazu nach "acceltext" suchen und den Zeilenkommentar "//" entfernen bzw. einfügen.
    Verwenden des in "view_source.editor.path" angegebenen Editors.
    Dateiordner kann in Konfiguration geändert werden.
    **** Anleitung Ende ****/
    (function(){
    /* Konfiguration */
    // Position: als Menü anzeigen = 1, als frei verschiebbare-Schaltfläche = 0
    let position = 0;
    // alternativer Dateimanager, Bsp.:
    // let filemanager = "C:\\Programme\\totalcmd\\TOTALCMD.EXE";
    let filemanager = "H:\\TotalCommander\\TOTALCMD64.EXE";
    // eventuelle Parameter für den alternativen Dateimanager, sonst filemanagerParam = "";
    //let filemanagerParam = "/O /T";//Totalcommander
    let filemanagerParam = "";
    // Unterordner für die CSS-Dateien:
    let cssFolder = "CSS";
    // zusätzlich Chrome-Ordner im Untermenü anzeigen: 1 = ja, 0 = nein
    let showChrome = 1;
    /* Ende Konfiguration */
    ChromeUtils.importESModule("resource://gre/modules/AppConstants.sys.mjs");
    let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
    // Wenn beim Start ein anderes Fenster angezeigt wird (das zweite Fenster), wird es beendet
    let list = Services.wm.getEnumerator("navigator:browser");
    while(list.hasMoreElements()){ if(list.getNext() != window) return; }
    if (window.UCL) {
        window.UCL.destroy();
        delete window.UCL;
    }
    window.UCL = {
        vFileManager: filemanager,
        vFMParameter: filemanagerParam,
        USE_UC: "UC" in window,
        AGENT_SHEET: Ci.nsIStyleSheetService.AGENT_SHEET,
        USER_SHEET : Ci.nsIStyleSheetService.USER_SHEET,
        AUTHOR_SHEET: Ci.nsIStyleSheetService.AUTHOR_SHEET,
        readCSS : {},
        get disabled_list() {
            let obj = [];
            try {
                    obj = this.prefs.getCharPref("disabled_list").split("|");
            } catch(e) {}
            delete this.disabled_list;
            return this.disabled_list = obj;
        },
        get prefs() {
                delete this.prefs;
                return this.prefs = Services.prefs.getBranch("UserCSSLoader.")
        },
        get styleSheetServices(){
                delete this.styleSheetServices;
                return this.styleSheetServices = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
        },
        get FOLDER() {
            let aFolder;
            try {
                // UserCSSLoader.FOLDER verwenden
                let folderPath = this.prefs.getCharPref("FOLDER");
                aFolder = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
                aFolder.initWithPath(folderPath);
            } catch (e) {
                aFolder = Services.dirsvc.get("UChrm", Ci.nsIFile);
                aFolder.appendRelativePath(cssFolder);
            }
            if (!aFolder.exists() || !aFolder.isDirectory()) {
                aFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0664);
            }
            delete this.FOLDER;
            return this.FOLDER = aFolder;
        },
        get CHRMFOLDER() {
            let bFolder;
            try {
                // UserCSSLoader.CHRMFOLDER verwenden
                let CHRMfolderPath = this.prefs.getCharPref("CHRMFOLDER");
                bFolder = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
                bFolder.initWithPath(CHRMfolderPath);
            } catch (e) {
                bFolder = Services.dirsvc.get("UChrm", Ci.nsIFile);
            }
            if (!bFolder.exists() || !bFolder.isDirectory()) {
                bFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0664);
            }
            delete this.CHRMFOLDER;
            return this.CHRMFOLDER = bFolder;
        },
        getFocusedWindow: function() {
            let win = document.commandDispatcher.focusedWindow;
            if (!win || win == window) win = content;
            return win;
        },
        init: function() {
            const cssmenu = $C("menu", {
                id: "usercssloader-menu",
                label: "CSS",
                tooltiptext: "UserCSSLoader\n\nLinksklick: Stylesheets anzeigen\nMittelklick: Styles importieren",
                accesskey: "S",
                //acceltext: "Alt + S",
                onclick: "if (event.button == 1) UCL.rebuild()"
            });
            const menupopup = $C("menupopup", {
                id: "usercssloader-menupopup"
            });
            cssmenu.appendChild(menupopup);
            let menu = $C("menu", {
                label: "Style-Loader-Menü",
                id: "style-loader-menu",
                accesskey: "M",
                //acceltext: "Alt + M"
            });
            menupopup.appendChild(menu);
            menupopup.appendChild($C("menuseparator"));
            let mp = $C("menupopup", { id: "usercssloader-submenupopup" });
            menu.appendChild(mp);
            mp.appendChild($C("menuitem", {
                label: "Styles importieren",
                accesskey: "I",
                //acceltext: "Alt + I",
                oncommand: "UCL.rebuild();"
            }));
            mp.appendChild($C("menuseparator"));
            mp.appendChild($C("menuitem", {
                label: "CSS-Datei erstellen",
                accesskey: "E",
                //acceltext: "Alt + E",
                oncommand: "UCL.create();"
            }));
            mp.appendChild($C("menuitem", {
                label: "CSS-Ordner öffnen",
                accesskey: "O",
                //acceltext: "Alt + O",
                oncommand: "UCL.openFolder();"
            }));
            if (showChrome === 1) {
                mp.appendChild($C("menuitem", {
                    label: "Chrome-Ordner öffnen",
                    accesskey: "X",
                    acceltext: "Alt + X",
                    oncommand: "UCL.openCHRMFolder();"
                }));
            }
            mp.appendChild($C('menuseparator'));
            mp.appendChild($C("menuitem", {
                label: "userChrome.css bearbeiten",
                hidden: false,
                oncommand: "UCL.editUserCSS('userChrome.css');"
            }));
            mp.appendChild($C("menuitem", {
                label: "userContent.css bearbeiten",
                hidden: false,
                oncommand: "UCL.editUserCSS('userContent.css');"
            }));
            menu = $C("menu", {
                label: ".uc.css",
                accesskey: "U",
                //acceltext: "Alt + U",
                hidden: !UCL.USE_UC
            });
            menupopup.appendChild(menu);
            mp = $C("menupopup", { id: "usercssloader-ucmenupopup" });
            menu.appendChild(mp);
            mp.appendChild($C("menuitem", {
                label: "Importieren(.uc.js)",
                oncommand: "UCL.UCrebuild();"
            }));
            mp.appendChild($C("menuseparator", { id: "usercssloader-ucseparator" }));
            CustomizableUI.createWidget({
                id: 'usercssloader-menu-item',
                type: 'custom',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                onBuild: function(aDocument) {
                    let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbaritem');
                    toolbaritem.id = 'usercssloader-menu-item';
                    toolbaritem.className = 'chromeclass-toolbar-additional';
                    return toolbaritem;
                }
            });
            $('usercssloader-menu-item').appendChild(cssmenu);
            if (position === 1) {
                let refNode = $('helpMenu');
                refNode.parentNode.insertBefore(cssmenu, refNode.nextSibling);
            }
            
            $("mainKeyset").appendChild($C("key", {
                id: "usercssloader-rebuild-key",
                oncommand: "UCL.rebuild();",
                key: "R",
                modifiers: "alt",
            }));
            
            this.rebuild();
            this.initialized = true;
            if (UCL.USE_UC) {
                setTimeout(function() {
                    UCL.UCcreateMenuitem();
                }, 1000);
            }
            window.addEventListener("unload", this, false);
        },
        uninit: function() {
            const dis = [];
            for (let x of Object.keys(this.readCSS)) {
                if (!this.readCSS[x].enabled)
                    dis.push(x);
            }
            this.prefs.setCharPref("disabled_list", dis.join("|"));
            window.removeEventListener("unload", this, false);
        },
        destroy: function() {
            var i = document.getElementById("usercssloader-menu");
            if (i) i.parentNode.removeChild(i);
            var i = document.getElementById("usercssloader-rebuild-key");
            if (i) i.parentNode.removeChild(i);
            this.uninit();
        },
        handleEvent: function(event) {
            switch(event.type){
                case "unload": this.uninit(); break;
            }
        },
        rebuild: function() {
            let ext = /\.css$/i;
            let not = /\.uc\.css/i;
            let files = this.FOLDER.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
            while (files.hasMoreElements()) {
                let file = files.getNext().QueryInterface(Ci.nsIFile);
                if (!ext.test(file.leafName) || not.test(file.leafName)) continue;
                let CSS = this.loadCSS(file);
                CSS.flag = true;
            }
            for (let leafName of Object.keys(this.readCSS)) {
                const CSS = this.readCSS[leafName];
                if (!CSS.flag) {
                    CSS.enabled = false;
                    delete this.readCSS[leafName];
                }
                delete CSS.flag;
                this.rebuildMenu(leafName);
            }
            if (this.initialized) {
                if (typeof(StatusPanel) !== "undefined")
                    StatusPanel._label = "Styles importiert";
                else
                    XULBrowserWindow.statusTextField.label = "Styles importieren";
            }
        },
        loadCSS: function(aFile) {
            let CSS = this.readCSS[aFile.leafName];
            if (!CSS) {
                CSS = this.readCSS[aFile.leafName] = new CSSEntry(aFile);
                if (this.disabled_list.indexOf(CSS.leafName) === -1) {
                    CSS.enabled = true;
                }
            } else if (CSS.enabled) {
                CSS.enabled = true;
            }
            return CSS;
        },
        rebuildMenu: function(aLeafName) {
            let CSS = this.readCSS[aLeafName];
            let menuitem = document.getElementById("usercssloader-" + aLeafName);
            if (!CSS) {
                if (menuitem)
                    menuitem.parentNode.removeChild(menuitem);
                return;
            }
            if (!menuitem) {
                menuitem = $C("menuitem", {
                    label : aLeafName,
                    id : "usercssloader-" + aLeafName,
                    class : "usercssloader-item " + (CSS.SHEET == this.AGENT_SHEET? "AGENT_SHEET" : CSS.SHEET == this.AUTHOR_SHEET? "AUTHOR_SHEET": "USER_SHEET"),
                    type : "checkbox",
                    autocheck : "false",
                    oncommand : "UCL.toggle('"+ aLeafName +"');",
                    onclick : "UCL.itemClick(event);",
                    onmouseup : "if (event.button == 1) event.preventDefault();",
                    tooltiptext : "Linksklick: an/aus, Menü schließt\nMittelklick: an/aus, Menü bleibt offen\nRechtsklick: bearbeiten\nStrg+Linksklick: im Dateimanager anzeigen"
                    });
                document.getElementById("usercssloader-menupopup").appendChild(menuitem);
            }
            menuitem.setAttribute("checked", CSS.enabled);
        },
        toggle: function(aLeafName) {
            let CSS = this.readCSS[aLeafName];
            if (!CSS || event.ctrlKey) return;
            CSS.enabled = !CSS.enabled;
            this.rebuildMenu(aLeafName);
        },
        itemClick: function(event) {
            let label = event.currentTarget.getAttribute("label");
            if (event.button === 0) {
                if (event.ctrlKey) {
                    event.preventDefault();
                    event.stopPropagation();
                    UCL.openFolder(label);
                } else {return;}
            }
                    event.preventDefault();
                    event.stopPropagation();
            if (event.button === 1) {
                this.toggle(label);
            }
            else if (event.button === 2) {
                closeMenus(event.target);
                this.edit(this.getFileFromLeafName(label));
            }
        },
        getFileFromLeafName: function(aLeafName) {
            let f = this.FOLDER.clone();
            f.QueryInterface(Ci.nsIFile); // use appendRelativePath
            f.appendRelativePath(aLeafName);
            return f;
        },
        openFolder:function(label){
            const PathSep = AppConstants.platform === "win" ? "\\" : "/";
            let target= this.FOLDER.path + PathSep + label;
            if (this.vFileManager.length !== 0) {
                let file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
                let process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
                let args = [this.vFMParameter,target];
                file.initWithPath(this.vFileManager);
                process.init(file);
                // Verzeichnis mit anderem Dateimanager öffnen
                process.run(false, args, args.length);
            } else {
                // Verzeichnis mit Dateimanager des Systems öffnen
                this.FOLDER.launch();
            }
        },
        openCHRMFolder:function(){
            if (this.vFileManager.length !== 0) {
                let file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
                let process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
                let args = [this.vFMParameter,this.CHRMFOLDER.path];
                file.initWithPath(this.vFileManager);
                process.init(file);
                // Verzeichnis mit anderem Dateimanager öffnen
                process.run(false, args, args.length);
            } else {
                // Verzeichnis mit Dateimanager des Systems öffnen
                this.CHRMFOLDER.launch();
            }
        },
        editUserCSS: function(aLeafName) {
            let file = Services.dirsvc.get("UChrm", Ci.nsIFile);
            file.appendRelativePath(aLeafName);
            this.edit(file);
        },
        edit: function(aFile) {
            let editor = Services.prefs.getCharPref("view_source.editor.path");
            if (!editor) return alert("Unter about:config den vorhandenen Schalter:\n view_source.editor.path mit dem Editorpfad ergänzen");
            try {
                let UI = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
                UI.charset = window.navigator.platform.toLowerCase().indexOf("win") >= 0? "Shift_JIS": "UTF-8";
                let path = UI.ConvertFromUnicode(aFile.path);
                let app = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile);
                app.initWithPath(editor);
                let process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
                process.init(app);
                process.run(false, [path], 1);
            } catch (e) {}
        },
        create: function(aLeafName) {
            if (!aLeafName) aLeafName = prompt("Name des Styles", dateFormat(new Date(), "%Y_%m%d_%H%M%S"));
            if (aLeafName) aLeafName = aLeafName.replace(/\s+/g, " ").replace(/[\\/:*?\"<>|]/g, "");
            if (!aLeafName || !/\S/.test(aLeafName)) return;
            if (!/\.css$/.test(aLeafName)) aLeafName += ".css";
            let file = this.getFileFromLeafName(aLeafName);
            this.edit(file);
        },
        UCrebuild: function() {
            let re = /^file:.*\.uc\.css(?:\?\d+)?$/i;
            let query = "?" + new Date().getTime();
            Array.slice(document.styleSheets).forEach(function(css){
                if (!re.test(css.href)) return;
                if (css.ownerNode) {
                    css.ownerNode.parentNode.removeChild(css.ownerNode);
                }
                let pi = document.createProcessingInstruction('xml-stylesheet','type="text/css" href="'+ css.href.replace(/\?.*/, '') + query +'"');
                document.insertBefore(pi, document.documentElement);
            });
            UCL.UCcreateMenuitem();
        },
        UCcreateMenuitem: function() {
            let sep = $("usercssloader-ucseparator");
            let popup = sep.parentNode;
            if (sep.nextSibling) {
                let range = document.createRange();
                range.setStartAfter(sep);
                range.setEndAfter(popup.lastChild);
                range.deleteContents();
                range.detach();
            }
            let re = /^file:.*\.uc\.css(?:\?\d+)?$/i;
            Array.slice(document.styleSheets).forEach(function(css) {
                if (!re.test(css.href)) return;
                let fileURL = decodeURIComponent(css.href).split("?")[0];
                let aLeafName = fileURL.split("/").pop();
                let m = $C("menuitem", {
                    label : aLeafName,
                    tooltiptext : fileURL,
                    id : "usercssloader-" + aLeafName,
                    type : "checkbox",
                    autocheck : "false",
                    checked : "true",
                    oncommand : "if (!event.ctrlKey) {this.setAttribute('checked', !(this.css.disabled = !this.css.disabled));}",
                    onmouseup : "if(event.button === 1) event.preventDefault();",
                    onclick : "UCL.UCItemClick(event);"
                });
                m.css = css;
                popup.appendChild(m);
            });
        },
        UCItemClick: function(event) {
            if (event.button === 0) return;
            event.preventDefault();
            event.stopPropagation();
            if (event.button === 1) {
                event.target.doCommand();
            }
            else if (event.button === 2) {
                closeMenus(event.target);
                let fileURL = event.currentTarget.getAttribute("tooltiptext");
                let file = Services.io.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler).getURLSpecFromActualFile(fileURL);
                this.edit(file);
            }
        },
    };
    function CSSEntry(aFile) {
        this.path = aFile.path;
        this.leafName = aFile.leafName;
        this.lastModifiedTime = 1;
        this.SHEET = /^xul-|\.as\.css$/i.test(this.leafName) ? 
            Ci.nsIStyleSheetService.AGENT_SHEET:
            /\.author\.css$/i.test(this.leafName)?
            Ci.nsIStyleSheetService.AUTHOR_SHEET:
            Ci.nsIStyleSheetService.USER_SHEET;
    }
    CSSEntry.prototype = {
        sss: Components.classes["@mozilla.org/content/style-sheet-service;1"]
                .getService(Components.interfaces.nsIStyleSheetService),
        _enabled: false,
        get enabled() {
            return this._enabled;
        },
        set enabled(isEnable) {
            let aFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile)
            aFile.initWithPath(this.path);
            let isExists = aFile.exists(); // true, wenn die Datei existiert
            let lastModifiedTime = isExists ? aFile.lastModifiedTime : 0;
            let isForced = this.lastModifiedTime != lastModifiedTime; // true, wenn es eine Änderung in der Datei gibt
            let fileURL = Services.io.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler).getURLSpecFromActualFile(aFile);
            let uri = Services.io.newURI(fileURL, null, null);
            if (this.sss.sheetRegistered(uri, this.SHEET)) {
                // Wenn diese Datei bereits gelesen wurde
                if (!isEnable || !isExists) {
                    this.sss.unregisterSheet(uri, this.SHEET);
                }
                else if (isForced) {
                    // Nach Stornierung erneut einlesen
                    this.sss.unregisterSheet(uri, this.SHEET);
                    this.sss.loadAndRegisterSheet(uri, this.SHEET);
                }
            } else {
                // Datei wurde nicht gelesen
                if (isEnable && isExists) {
                    this.sss.loadAndRegisterSheet(uri, this.SHEET);
                }
            }
            if (this.lastModifiedTime !== 1 && isEnable && isForced) {
                log(this.leafName + " wurde aktualisiert");
            }
            this.lastModifiedTime = lastModifiedTime;
            return this._enabled = isEnable;
        },
    };
    UCL.init();
    function $(id) { return document.getElementById(id); }
    function $A(arr) { return Array.slice(arr); }
    function $C(name, attr) {
        let el = document.createXULElement(name);
        if (attr) Object.keys(attr).forEach(function(n) {
            if(n === "oncommand") {
                el.addEventListener('command', function(event) { Function(attr[n])(); });
            }
            else if(n === "onclick") {
                el.addEventListener('click', function(event) { Function(attr[n])(); });
            }
            else if(n === "onmouseup") {
                el.addEventListener('mouseup', function(event) { Function(attr[n])(); });
            }
            else {
                el.setAttribute(n, attr[n]); 
            }
        });
        return el;
    }
    function dateFormat(date, format) {
        format = format.replace("%Y", ("000" + date.getFullYear()).substr(-4));
        format = format.replace("%m", ("0" + (date.getMonth()+1)).substr(-2));
        format = format.replace("%d", ("0" + date.getDay()).substr(-2));
        format = format.replace("%H", ("0" + date.getHours()).substr(-2));
        format = format.replace("%M", ("0" + date.getMinutes()).substr(-2));
        format = format.replace("%S", ("0" + date.getSeconds()).substr(-2));
        return format;
    }
    function log() { Application.console.log(Array.slice(arguments)); }
    })();
    Alles anzeigen

    Ab Zeile 41 sind ggf. Änderungen einzufügen.

  • extras_config_menu.uc.js in Fx 139 keine Funktion mehr

    • Boersenfeger
    • 11. April 2025 um 12:18

    Ich hab schon mal die user.js vorbereitet und wollte den Schalter bereits korrekt setzen im auskommentierten String. :)

    Edit: Danke Sören Hentzschel

  • Der Glückwunsch-Thread

    • Boersenfeger
    • 11. April 2025 um 12:12

    Büssen Alles Gute zum Geburtstag und vor allem viel Gesundheit wünscht Boersenfeger :)

  • extras_config_menu.uc.js in Fx 139 keine Funktion mehr

    • Boersenfeger
    • 11. April 2025 um 12:10

    Wie muss dann der Schalter sein? 1 oder 0, oder true / false?

  • Schrift im Nightly anders als im Default-Firefox

    • Boersenfeger
    • 10. April 2025 um 16:05

    Das war nicht so, ich habe aber jetzt dort einen Eintrag mit dem Wert "0" erstellt, das half... 8o

  • MozBackup wird weiterentwickelt

    • Boersenfeger
    • 10. April 2025 um 15:28

    Da hast du recht... :thumbup:

  • Sicherheitslücke in ESET Software

    • Boersenfeger
    • 10. April 2025 um 15:13

    Dann lösch es, ich kann das ja jetzt nicht mehr...

    Habe es nicht gelesen aber auch nicht danach gesucht... :sleeping:

  • Sicherheitslücke in ESET Software

    • Boersenfeger
    • 10. April 2025 um 15:05

    Nutzer sollten updaten oder besser gleich die Sache deinstallieren..
    Der Defender und vernünftiger Umgang reicht ja. ;)

    ToddyCat: Malware nutzt Sicherheitsleck in Antivirensoftware
    Statt Systeme vor Malware zu schützen, hat eine Lücke in Eset-Virenschutz zur Ausführung von Schadsoftware geführt.
    www.heise.de
  • MozBackup wird weiterentwickelt

    • Boersenfeger
    • 10. April 2025 um 14:57

    Ich bin mit meinem verwendeten Script voll zufrieden:

    Ggf. für Mitlesende

    JavaScript
    // ==UserScript==
    // @name           BackupProfile.uc.js
    // @namespace      BackupProfile.github.com
    // @description    Schaltfläche zum Sichern des Firefoxprofils
    // @charset        UTF-8
    // @author         ywzhaiqi、defpt
    // @version        v2023.07.02 FF 115.*
    // @note           Vorlage Script von ywzhaiqi (+ Mischung aus diversen Varianten aus dem Fuchsforum 1.11.21)
    // @note           Sicherungsdatei enthaelt auch Profilname
    // @note 		   FileUtils.getFile ersetzt 2.7.23
    // @reviewURL      http://bbs.kafan.cn/thread-1758785-1-1.html
    (function () {
    	    if (location.href !== 'chrome://browser/content/browser.xhtml') return;
    	ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
    	CustomizableUI.createWidget({
    		id : "Backup-button",
    		defaultArea : CustomizableUI.AREA_NAVBAR,
    		label : "Profilsicherung",
    		tooltiptext : "Sichern der aktuellen Konfiguration",
    		onClick: function(){
    			// Speicherort - Ordner festlegen - Sichern funktioniert nur wenn Speicherort- bzw. Ordner vorhanden ist!!
    			var path = "G:\\Boersenfeger\\Sicherungen\\Firefox\\Firefox Sicherung\\Nightly\\";
    			// var path = "";
    			// Ausschlussliste
    			var excludes = 'bookmarkbackups *cache* crashes fftmp *healthreport* minidumps safebrowsing *webapps* saved-telemetry-pings *thumbnails* *session* *Telemetry* *hotfix* *.sqlite-shm *.sqlite-wal *.bak parent.lock blocklist.xml content-prefs.sqlite directoryLinks.json mimeTypes.rdf compatibility.ini parent.lock formhistory.sqlite';
    
    			if (!path) {
    				var nsIFilePicker = Ci.nsIFilePicker;
    				var FP = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
    				FP.init(window, 'Sicherungspfad wählen', nsIFilePicker.modeGetFolder);
    
    				if (FP.show() == nsIFilePicker.returnOK) {
    					path = FP.file.path;
    				} else {
    					return false;
    				}
    			}
    
    			excludes = excludes.replace(/\./g, '\\.').replace(/\*/g, '.*').replace(/\s+/g, '|');
    			excludes = new RegExp(excludes, 'i');
    
    			var zw = Cc['@mozilla.org/zipwriter;1'].createInstance(Ci.nsIZipWriter);
    			var pr = {PR_RDONLY: 0x01, PR_WRONLY: 0x02, PR_RDWR: 0x04, PR_CREATE_FILE: 0x08, PR_APPEND: 0x10, PR_TRUNCATE: 0x20, PR_SYNC: 0x40, PR_EXCL: 0x80};
    			var fu = ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs').FileUtils;
    			var dir = new FileUtils.File(PathUtils.join(PathUtils.profileDir,[]));
    
    			let d = new Date();
    			d = d.getDate() + '.' + (d.getMonth() + 1).toString().padStart(2, '0') + '.' + d.getFullYear().toString().padStart(2, '0')  + '  '  + d.getHours().toString().padStart(2, '0') + '\uA789' + d.getMinutes().toString().padStart(2, '0') + '\uA789' + d.getSeconds().toString().padStart(2, '0');
    
    			// Die folgende Zeile formt den Archivnamen
                var archiveName = 'Profil Nightly ' + ' ' + d + '.zip';  /* 'd' ersetzt 'localnow' */
    
    			var xpi = fu.File(path + '\\' + archiveName);
    
    			zw.open(xpi, pr.PR_RDWR | pr.PR_CREATE_FILE | pr.PR_TRUNCATE);
    			var dirArr = [dir];
    			for (var i=0; i<dirArr.length; i++) {
    				var dirEntries = dirArr[i].directoryEntries;
    				while (dirEntries.hasMoreElements()) {
    					var entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
    					if (entry.path == xpi.path) {
    						continue;
    					}
    
    					if (entry.isDirectory()) {
    					   dirArr.push(entry);
    					}
    
    					var relPath = entry.path.replace(dirArr[0].path, '');
    					if (relPath.match(excludes)) {
    						continue;
    					}
    
    					var saveInZipAs = relPath.substr(1);
    					saveInZipAs = saveInZipAs.replace(/\\/g,'/');
    					// Konfigurationsdateien können gesperrt werden
    					try {
    						zw.addEntryFile(saveInZipAs, Ci.nsIZipWriter.COMPRESSION_FASTEST, entry, false);
    					} catch (e) {}
    				}
    			}
    			zw.close();
    			alert('Die aktuelle Konfiguration wurde als:\n'+ archiveName +'\ngesichert in:\n' + path);
    
    			function alert(aString, aTitle) {
    				Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle, aString, false, "", null);
    			}
    
    			function bupgetCurrentProfileName(){
    				function readFile(aFile){
    					var stream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);    stream.init(aFile, 0x01, 0, 0);
    					var cvstream = Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream);
    					cvstream.init(stream, "UTF-8", 1024, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
    					var content = "", data = {};
    					while (cvstream.readString(4096, data)) {
    						content += data.value;
    					}
    					cvstream.close();
    					return content.replace(/\r\n?/g, "\n");
    				}
    				var PrefD = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("PrefD", Components.interfaces.nsIFile);
    				var ini = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("AppRegD", Components.interfaces.nsIFile);
    
    				ini.append("profiles.ini");
    				var ini = readFile(ini);
    				var profiles = ini.match(/Name=.+/g);
    				var profilesD = ini.match(/Path=.+/g);
    				for ( var i = 0; i < profiles.length;i++) {
    				if ((profilesD[i]+"$").indexOf(PrefD.leafName+"$") >= 0) {
    					profiles[i].match(/Name=(.+)$/);
    					return RegExp.$1;
    					}
    				}
    				return null;
    			}
    		},
    	});
    
    	var cssStr = '@-moz-document url("chrome://browser/content/browser.xhtml"){'
    		 + '#Backup-button .toolbarbutton-icon {'
    		 + 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1%2B%2FAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNC8xMS8wOGGVBZQAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABxklEQVQ4ja2UMUgbURjHfxeSFBzuBEuCkkAgIA5JDdzWohVnQe3UpRDE2UXpKKXdWro4ixlcdNJAydxiyHZkCIKIOEnLpZQSRFFz%2Bjqk73nvuDtb2j883nv%2F73u%2F%2B%2B69ewf%2FWUZgbgEFYDgiPw18B86An8DtQw%2BYdF1XRLVGoyGEEKJara4Bj0MKIhGYDxuGQVSTqtVqH0ql0uzvNzLigCQSicjmeZ7K63Q6u5VKZRoYigXGVWhZlpbbbrfrwKjfS4ZVGKVCoUCz2aTX65FOp6WdA04igf69CsqyLMrlctAWsRXGAf9EavXyFELEZT4A2TwYsLQKF%2BYXAJhb3VPep4%2BLzK3uqd7vS9Xr%2B2qsAW9u4eyoxcZSFoCVLZfTwxaA6v2xjaUsuYmnWrU60IOr%2FmD8etvl%2Fausikl%2FZcsFULEbD02hwPUdl7cvs1qiBAb9eOCdwdjEM2AABdh88wJA%2BbK%2FX6MDtVPmHyRPOfjRPfc87%2FPfgJLJ5AzwRc0BbNseB8a63e6TuKsXpnw%2BP5nJZAzgq%2BM4x3IPzwFM07woFovv%2Bv3%2BUDTiXqlU6tI0zQs%2FI%2FSe2bYt%2FyCPgJFA%2BAdwDeA4zrfg2l%2BwUqCoC1F3YQAAAABJRU5ErkJggg%3D%3D)'
    		 + '}}';
    	var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
    	var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
    	sss.loadAndRegisterSheet(ios.newURI("data:text/css;base64," + btoa(cssStr), null, null), sss.USER_SHEET);
    })();
    Alles anzeigen

    Zeile 22 und 25 ist dann nach Gusto noch zu ändern

  • US-Regierung streicht Fördergelder für Mozilla Foundation in Millionenhöhe

    • Boersenfeger
    • 10. April 2025 um 14:46

    Irgendwer sollte die durch Insiderhandel abgeschöpften Gewinne bei Trumpvertrauten einsammeln und an Mozilla weiterleiten.

    Hintergrund

  • Schrift im Nightly anders als im Default-Firefox

    • Boersenfeger
    • 9. April 2025 um 18:09

    Hier sieht es nun in beiden wieder normal aus. Allerdings kommt der Haken immer wieder.. ich warte jetzt mal ab....

  • Schrift im Nightly anders als im Default-Firefox

    • Boersenfeger
    • 9. April 2025 um 17:09

    Wie sie im 137 ist

  • Schrift im Nightly anders als im Default-Firefox

    • Boersenfeger
    • 9. April 2025 um 15:23

    Beide Einstellungen sind gleich, das hatte ich nicht umsonst oben geschrieben. Allerdings behält der Dialog im Nightly nicht die Einstellung OHNE das Häkchen gesetzt zu haben. Ich stelle dies ein, speichere über OK ab.

    Ich rufe eine Webseite, (von daher ist dies nicht nur auf den Webseiten des Forums, sondern auf allen so), via STG+UMSCHALT+R unter Umgehung des Caches neu auf und sehe, dass KEINE Änderung eingetreten ist. Öffne ich dann den Schriften-Erweitert-Dialog in Einstellungen, ist der Haken wieder gesetzt.

  • Schrift im Nightly anders als im Default-Firefox

    • Boersenfeger
    • 9. April 2025 um 11:32

    Seit heute erscheint die Schrift im Forum mit der neuesten Nightly Version anders, als mit 137.0.1

    Beide Browser haben die gleichen Einstellungen

    Erscheinung in Nightly

    ..und in 137.0.1

    Dieser Code fürs Forum wird identisch verwendet:

    CSS
    /* Camp Firefox Forum */
    
    @-moz-document domain("camp-firefox.de") {
    
    html,
    body,
    .main,
    .boxesFooter,
    .boxesFooterBoxes,
    .layoutBoundary,
    .pageFooterCopyright,
    .pageHeaderFacade,
    .pageNavigation
    { 
    background: #6495ed !important;
    }
    
    a,
    button,
    input,
    textarea,
    .messageGroupList .columnSubject > .statusDisplay
    {
        transition: none !important;
        -webkit-transition: none !important;
    }
    
    a.externalURL,
    .pageNavigation a,
    .contentHeaderTitle a
    {
        color: lightblue !important;
        font-weight: bold !important;
    }
    
    a.externalURL:hover,
    .pageNavigation a:hover,
    .contentHeaderTitle a:hover
    {
        color: #dc143c !important;
        font-weight: 900 !important;
    }
    
    #pageContainer,
    .pageContainer
    {
        max-width: 1660px !important;
    	margin-left: 200px !important;
    }
    
    #tpl_wbb_board .pageNavigationIcons > li:not(:last-child)
    {
        margin-left: 0 !important;
    }
    
    #tpl_wbb_board .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_unresolvedThreadList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_userPostList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_disclaimer .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_membersList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_recentActivityList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_team .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_userSearch .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_usersOnlineList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons
    {
        left: calc(1vw - 100% + 85px) !important;
    }
    
    #tpl_wbb_thread .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_unreadThreadList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons
    {
        left: calc(1vw - 100% + 110px) !important;
    }
    
    #tpl_wcf_articleList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_conversation .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_ignoredUsers .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wcf_notificationList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons
    {
        left: calc(1vw - 100% + 5px) !important;
    }
    
    #tpl_wbb_boardList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/2-nachrichten/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/3-smalltalk/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/4-erweiterungen-themes/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/7-vorab-versionen/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/8-probleme-auf-websites/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/9-m%C3%BCllhalde/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/11-schaltzentrale/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/15-firefox-allgemein/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/16-individuelle-anpassungen/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/20-firefox-produkte-f%C3%BCr-android/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons,
    #tpl_wbb_board[itemid="https://www.camp-firefox.de/forum/forum/24-firefox-produkte-f%C3%BCr-apple-ios/"] .pageNavigation .pageNavigationIcons.jsPageNavigationIcons
    {
        left: calc(1vw - 100% + 125px) !important;
    }
    
    #tpl_wbb_unreadThreadList .section .tabularListRow.tabularListRowHead
    {
        background: #eee !important;
    }
    
    #tpl_wbb_userPostList .message
    {
        border: none !important;
        padding: 1px !important;
    }
    
    #tpl_wbb_userPostList .messageContent,
    #tpl_wbb_userPostList .messageFooterGroup
    {
        background: #eee !important;
        margin-left: 0 !important;
    }
    
    #tpl_wcf_disclaimer .content form .section.htmlContent > ol li
    {
        background: #eee !important;
        border-bottom: 1px #888 solid !important;
        padding: 0 5px 5px 5px !important;
    }
    
    #tpl_wcf_membersList .section.sectionContainerList > ol li,
    #tpl_wcf_recentActivityList .section.sectionContainerList > ul li,
    #tpl_wcf_searchResult .section.sectionContainerList > ul li,
    #tpl_wcf_team .section.sectionContainerList > ol li,
    #tpl_wcf_usersOnlineList .section.sectionContainerList > ol li
    {
        border-bottom: 1px #888 solid !important;
    }
    
    #tpl_wcf_notificationList .content ul.containerList.userNotificationItemList li.jsNotificationItem.notificationItem div.box32 div img
    {
        height: 32px !important;
        width: 32px !important;
    }
    
    #tpl_wcf_recentActivityList .containerList > li .containerHeadline,
    #tpl_wcf_recentActivityList .containerContent.htmlContent
    {
        background: #fff !important;
        padding: 2px !important;
    }
    
    #tpl_wcf_settings .content p.success
    {
        background-color: #ff6800 !important;
        border: none !important;
        color: #222 !important;
    }
    
    #tpl_wbb_board .section ul.wbbBoardList > li.wbbBoardContainer,
    #tpl_wbb_unreadThreadList .section .tabularListColumns > ol.tabularListColumns,
    #tpl_wcf_disclaimer .section > ul.boardrules-rules,
    #tpl_wcf_membersList .section.sectionContainerList > ol,
    #tpl_wcf_notificationList .content ul.containerList.userNotificationItemList li.jsNotificationItem.notificationItem,
    #tpl_wcf_recentActivityList .section.sectionContainerList > ul,
    #tpl_wcf_searchResult .section.sectionContainerList,
    #tpl_wcf_team .section.sectionContainerList > ol,
    #tpl_wcf_usersOnlineList .section.sectionContainerList > ol
    {
        background: #eee !important;
        border-bottom: 1px #888 solid !important;
    }
    
    #tpl_wbb_userPostList .message:hover,
    #tpl_wbb_userPostList .messageContent:hover
    {
        background: #00bfff !important;
    }
    
    #tpl_wbb_board .section ul.wbbBoardList > li.wbbBoardContainer:hover,
    #tpl_wbb_unreadThreadList .section ol.tabularList li.tabularListRow ol.tabularListColumns:hover,
    #tpl_wcf_membersList .section.sectionContainerList > ol li:hover,
    #tpl_wcf_notificationList .content ul.containerList.userNotificationItemList li.jsNotificationItem.notificationItem:hover,
    #tpl_wcf_recentActivityList .section.sectionContainerList > ul li:hover,
    #tpl_wcf_searchResult .section.sectionContainerList > ul li:hover,
    #tpl_wcf_team .section.sectionContainerList > ol li:hover,
    #tpl_wcf_usersOnlineList .section.sectionContainerList > ol li:hover
    {
        background: #faebd7 !important;
    }
    
    .attachmentThumbnail .attachmentThumbnailImage img
    {
        opacity: .95 !important;
        transition: none !important;
        -webkit-transition: none !important;
    }
    
    .badge,
    a.badge,
    .newMessageBadge
    {
        color: #ee0 !important;
        font-weight: 900 !important;
    }
    
    .boxesFooterBoxes .box > .boxContent
    {
        margin-top: 0 !important;
        margin-left: 20px !important;
        min-height: 80px !important;
    }
    
    .boxesFooterBoxes .boxContainer
    {
        padding: 0 !important;
        margin-left: -5px !important;
    }
    
    .buttonGroup > li:last-child .button[data-tooltip="Inhalt melden"],
    .messageFooterButtons > li:last-child .button[data-tooltip="Inhalt melden"],
    .messageFooterButtonsExtra > li:last-child .button[data-tooltip="Inhalt melden"]
    {
        background: #c00 !important;
    }
    
    .buttonGroup > li:last-child .button[data-tooltip="Zitieren"],
    .messageFooterButtons > li:last-child .button[data-tooltip="Zitieren"],
    .messageFooterButtonsExtra > li:last-child .button[data-tooltip="Zitieren"]
    {
        background: #44f !important;
    }
    
    .containerHeadline a,
    .htmlContent a,
    .messageBody > .messageText a,
    .messageGroupAuthor a.userLink,
    .messageGroupList .columnLastPost a,
    .messageSignature > div a,
    .messageText a,
    .redactor-layer a,
    .sidebarItemTitle a.userLink,
    a.messageGroupLink,
    a.wbbLastPostAuthor,
    #tpl_wcf_notificationList .content ul.containerList.userNotificationItemList li.jsNotificationItem.notificationItem a
    {
        color: #286ce6 !important;
    }
    
    .containerHeadline a:hover,
    .htmlContent a:hover,
    .messageBody > .messageText a:hover,
    .messageGroupAuthor a.userLink:hover,
    .messageGroupList .columnLastPost a:hover,
    .messageSignature > div a:hover,
    .messageText a:hover,
    .redactor-layer a:hover,
    .sidebarItemTitle a.userLink:hover,
    .tabularBoxTitle > header h2 a:hover,
    a.messageGroupLink:hover,
    a.wbbLastPostAuthor:hover,
    #tpl_wcf_notificationList .content ul.containerList.userNotificationItemList li.jsNotificationItem.notificationItem a:hover
    {
        color: #dc143c !important;
    }
    
    .columnSubject > h3 a,
    .containerHeadline > h3,
    .tabularBoxTitle > header > h2
    {
        font-size: 16px !important;
    }
    
    .content .userAvatarImage
    {
        background: none !important;
        border: none !important;
        height: 32px !important;
        width: 32px !important;
    }
    
    .contentHeader
    {
        max-height: 64px !important;
        padding: 0 !important;
        margin: 0 0 5px 0 !important;
    }
    
    .contentHeader .contentTitle
    {
        font-size: 16px !important;
        font-weight: 900 !important;
    }
    
    .contentHeader.userProfileUser
    {
        min-height: 120px !important;
    }
    
    .contentHeader + .section,
    .contentHeader + .sectionContainer,
    .contentHeader + form,
    .messageHeader + .messageBody,
    .paginationTop + .section
    {
        margin-top: 0 !important;
    }
    .contentHeader .inlineDataList,
    .contentHeaderTitle ul,
    .messageHeaderBox > .messageHeaderMetaData *
    {
        color: black !important;
    }
    
    
    .main
    {
        padding: 0 !important;
        padding-bottom: 10px !important;
    }
    
    .boxesFooter,
    .boxesFooterBoxes,
    .layoutBoundary,
    .main,
    .pageFooterCopyright,
    .pageHeaderFacade,
    .pageNavigation
    {
        background-color: #6495ed !important;
    }
    
    .main #about,
    .main #recentActivity,
    li.jsIgnoredUser .box48
    {
        background: #eee !important;
        padding: 5px !important;
    }
    
    .main #recentActivity li:hover,
    .main ol.userList li.jsIgnoredUser .box48:hover
    {
        background: #fff !important;
    }
    
    .main .layoutBoundary
    {
        padding: 0 15px !important;
    }
    
    .main ol.userList li.jsIgnoredUser
    {
        background: #eee !important;
        padding: 0 !important;
    }
    
    .main ol.userList li.jsIgnoredUser .box48
    {
        background: #eee !important;
        padding: 3px !important;
    }
    
    .message
    {
        border: 1px #888 solid !important;
    }
    
    .messageContent,
    .messageFooterGroup
    {
        background: #ddd !important;
        padding: 10px !important;
        margin-left: 20px !important;
    }
    
    .messageFooterGroup
    {
        padding: 2px !important;
        margin-top: 0 !important;
    }
    
    .messageGroupAuthor a.userLink,
    .sidebarItemTitle a.userLink
    {
        font-style: italic !important;
    }
    
    .messageGroupList .box32 a,
    #tpl_wcf_notificationList .content ul.containerList.userNotificationItemList li.jsNotificationItem.notificationItem div.box32 div
    {
        width: 32px !important;
    }
    
    .messageGroupList .columnLastPost a
    {
        overflow: visible !important;
    }
    
    .messageGroupList .tabularList .tabularListRow:not(.tabularListRowHead) .columnStats > dl
    {
        visibility: visible !important;
    }
    
    .messageGroupList .tabularList li.divider ol.wbbThreadAnnouncement
    {
        background: #bb190040 !important;
    }
    
    .messageGroupList .tabularList li.divider ol.wbbThreadSticky
    {
        background: #89faff4f !important;
    }
    
    .messageGroupList .tabularList li.divider:hover
    {
        background: #eef6f9 !important;
    }
    
    .messageGroupList .userAvatarImage
    {
        background: none !important;
        border: none !important;
        height: 75% !important;
        width: 75% !important;
    }
    
    .messageHeader
    {
        border-bottom: 1px #888 solid !important;
        margin-bottom: 3px !important;
        padding-bottom: 0 !important;
    }
    
    .messageHeaderBox > .messageStatus *
    {
        color: #f5deb3 !important;
    }
    
    .messageList.messageReducedList > li:not(:last-child)
    {
        padding-bottom: 10px !important;
    }
    
    .messageSidebar .userAvatar span.badgeOnline
    {
        padding: 1px !important;
        margin: 0 0 0 36px !important;
    }
    
    .pageHeaderFacade > .layoutBoundary .pageHeaderLogo > a
    {
        padding: 0 0 0 10px !important;
    }
    
    .pageHeaderFixed .pageHeaderPanel
    {
        animation: none !important;
        transform: none !important;
        position: absolute !important;
    }
    
    .pageHeaderFixed .userPanel,
    .pageHeaderFacade .userPanel
    {
        animation: none !important;
        position: absolute !important;
        top: 10px !important;
        transition: none !important;
        -webkit-transition: none !important;
        z-index: 999 !important;
    }
    
    @media screen and (min-width:1025px)
    {
        .pageHeaderFixed .userPanel,
        .pageHeaderFacade .userPanel
        {
            left: calc((100vw - 1360px) / 2 + 400px) !important;
            /*left: 400px !important; für stylesweeping*/
        }
    }
    
    @media screen and (min-width:1400px)
    {
        .pageHeaderFixed .userPanel,
        .pageHeaderFacade .userPanel
        {
            left: calc((100vw - 1360px) / 2 + 400px) !important;
            /*left: 400px !important; für stylesweeping*/
        }
    }
    
    .pageHeaderNormal .pageHeaderPanel
    {
        position: absolute !important;
        transform: none !important;
        -webkit-transform: none !important;
    }
    
    .pageHeaderPanel,
    .pageHeaderFacade > .layoutBoundary
    {
        background: none !important;
    }
    
    .pageNavigation
    {
        padding: 10px 0 4px 0 !important;
    }
    
    .pageNavigation
    {
        margin-left: 10px !important;
    }
    
    .pageNavigation .breadcrumbs
    {
        margin-left: 125px;
    }
    
    .pageNavigation .layoutBoundary
    {
        background-color: #286ce6 !important;
        margin-left: 5px;
        margin-right: 20px;
    }
    
    @-moz-document domain(camp-firefox.de) {
    
    .layoutBoundary {  
         max-width: 100vw !important;
    }
    }
    
    .pageNavigation .pageNavigationIcons.jsPageNavigationIcons
    {
        color: lightblue !important;
        flex-direction: row !important;
        left: -1160px !important;
        margin-left: 0 !important;
        margin-right: 20px !important;
        position: relative !important;
    }
    
    .pageNavigation .pageNavigationIcons.jsPageNavigationIcons::after
    {
        content: " Du bist hier: " !important;
        color: lightblue !important;
        font-size: 16px !important;
        font-weight: 900 !important;
        margin-left: 10px !important;
    }
    
    .paginationTop
    {
        margin-top: 10px !important;
    }
    
    .quoteBox .quoteBoxContent
    {
        font-style: normal !important;
    }
    
    .quoteBox .quoteBoxContent .quoteBox
    {
        background: #fef6de !important;
        margin-right: 10px !important;
    }
    
    .quoteBoxContent
    {
        padding-left: 10px !important;
    }
    
    .quoteBoxTitle
    {
        color: blue !important;
        font-size: 15px !important;
    }
    
    .quoteBoxTitle,
    .xboxesFooterBoxes .box
    {
        margin-bottom: 0 !important;
    }
    
    .searchBarOpen .pageHeaderSearch
    {
        background: none !important;
        inset: 0 !important;
        left: calc((100vw - 1360px) / 2 + 600px) !important;
        margin-top: 0 !important;
        max-width: 400px !important;
        position: absolute !important;
        top: 10px !important;
        z-index: 999 !important;
    }
    
    .searchBarOpen .pageHeaderSearch form
    {
        border: 1px #444 solid !important;
    }
    
    .searchBarOpen .pageHeaderSearch form .pageHeaderSearchInput
    {
        background: #ddd !important;
    }
    
    .searchBarOpen .pageHeaderSearch form .pageHeaderSearchInputContainer .pageHeaderSearchType > .button::after
    {
        text-align: start !important;
    }
    
    .searchBarOpen .pageHeaderSearch form .pageHeaderSearchType.dropdown
    {
        width: 200px !important;
    }
    
    .sidebar
    {
        margin-top: 30px !important;
    }
    
    .sidebar.boxesSidebarRight .boxContainer .box .boxTitle
    {
        background: #eee !important;
        border-bottom: 1px #888 solid !important;
    }
    
    .sidebar.boxesSidebarRight .boxContainer .box h2
    {
        padding: 20px 20px 0 !important;
        margin-top: -20px !important;
    }
    
    .tabularBoxTitle > header
    {
        background: #eee !important;
        border-bottom: 1px #888 solid !important;
        margin-bottom: 0 !important;
    }
    
    .tabularListRowHead > .tabularListColumns > li,
    .tabularBoxTitle > header a,
    .tabularBoxTitle > header .icon
    {
        color: #009cff !important;
        font-weight: 900 !important;
    }
    
    .tabularListRowHead
    {
        border-bottom: 2px solid #8cd2ff !important;
    }
    
    .userMention
    {
        background: none !important;
        border: none !important;
        padding: 0 !important;
    }
    
    .wbbBoardDescription
    {
        max-width: 610px !important;
    }
    
    .wbbBoardList .wbbBoard
    {
        padding: 2px 0 !important;
    }
    
    .xboxesFooterBoxes .boxContainer h2.boxTitle,
    .xboxesFooterBoxes .boxContainer .boxContent.messageShareButtons
    {
        max-height: 0 !important;
    }
    
    .xboxesFooterBoxes .boxContainer,
    .boxesFooterBoxes .boxContainer section.box:nth-of-type(2)
    {
        background: #eee !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    
    woltlab-quote,
    .quoteBox
    {
        padding: 0 0 4px 10px !important;
        min-height: 0 !important;
    }
    
    
    /* html content, zB about:support */
    .messageBody > .messageText table *,
    .redactor-layer table *
    {
        font-size: 12px !important;
    }
    
    .htmlContent table td,
    .htmlContent table th,
    .messageBody > .messageText table td,
    .messageBody > .messageText table th,
    .messageSignature > div table td,
    .messageSignature > div table th,
    .redactor-layer table td,
    .redactor-layer table th,
    .table td,
    .table th,
    .tabularListRow
    {
        padding: 0 !important;
    }
    
    
    /*elemente ausblenden*/
    .box16,
    .boxesFooterBoxes .boxContainer section.box:nth-of-type(1),
    .box[data-box-identifier="com.woltlab.wcf.RegisterButton"],
    .box[data-box-identifier="com.woltlab.wcf.TodaysBirthdays"],
    .contentHeader .contentHeaderIcon,
    .messageGroupListStatsSimple,
    .messageHeader::after,
    .messageHeader::before,
    .pageHeaderLogo .pageHeaderLogoSmall,
    .pageHeaderLogo img.pageHeaderLogoLarge,
    .pageHeaderLogo,
    .pageNavigation .pageNavigationIcons.jsPageNavigationIcons a[data-tooltip="RSS-Feed"],
    .quoteBox .userLink,
    .quoteBoxIcon,
    .sidebar.boxesSidebarRight .boxContainer .box .boxTitle::after,
    .sidebar.boxesSidebarRight .boxContainer .box .boxTitle::before,
    .tabularBoxTitle > header::after,
    .tabularBoxTitle > header::before,
    .tabularListRowHead::after,
    .tabularListRowHead::before,
    #tpl_wbb_board .wbbStats,
    #tpl_wbb_boardList .wbbStats,
    #tpl_wbb_userPostList .messageFooterGroup,
    #tpl_wcf_articleList .pageNavigation .pageNavigationIcons.jsPageNavigationIcons::after,
    #tpl_wcf_recentActivityList small.containerContentType
    {
        display: none !important;
    }
    
    
    /* Camp-Firefox Ergänzungen */
     
        #redactor-toolbar-0 {
            background:#3b83bd! important;
        } 
    
    /*Vorschaufenster für eine Antwort breiter*/
    
        .dialogContent {
            min-width:1000px! important; 
        }
    
    /*Text Code eingefügt*/
    
        .re-button.re-code.re-button-icon::after {
            font-weight:bold! important;
            content: 'Code' ! important; }
        .re-button.re-code.re-button-icon:hover {
            color:black! important; 
        }
    
    /*Rahmen um Antwortfenster*/
    
        .messageContent.messageQuickReplyContent {
            border-left: 1px solid black! important;
            border-right: 1px solid black! important;
            border-bottom: 1px solid black! important; 
        }
    
        .messageTabMenu{
            border-top: 1px solid black! important;
            border-bottom: 1px solid black! important;
        }
    
    /*Rahmen um Zitatfenster und andere*/
    
        .codeBox.collapsibleBbcode.cssHighlighter,
        .quoteBox.collapsibleBbcode,
        .quoteBox.collapsibleBbcode.collapsed,
        .codeBox.collapsibleBbcode.cssHighlighter.collapsed,
        .quoteBox.collapsibleBbcode.jsCollapsibleBbcode {
            background:beige! important;
            border: 1px solid black! important;
        }
    
    /*Zitateblock farbig*/
    
        blockquote.quoteBox {
            background: #EAA221 ! important; 
        }
    
        .userAvatarImage {
            border-radius: 10px ! important;
        }
    
        span.quoteBoxTitle {
            font-size: 16px ! important;
        }
    
    /* Smilies ausgeklappt*/
    
        LI[data-name="smilies"]{
            display:none! important;
            }
        DIV[class="messageTabMenuContent messageTabMenu"][data-preselect="true"][data-collapsible="false"] {
            margin-left:10px! important;
            border:none! important;
            display: block! important;
        }
            
        .messageTabMenuNavigation.jsOnly {
            border-bottom:1px solid black! important;
        }
    
    /* Überschriften in Unterforen */
    
        .tabularBoxTitle > header a {
            color: #EAA221! important;
        }
    
    /* Boxen unterschiedlich einfaerben */
    
        #pageHeaderPanel > DIV > DIV > DIV > NAV > OL > LI:nth-child(2) > OL{
            background:beige! important;
        }
        #pageHeaderPanel > DIV > DIV > DIV > NAV > OL > LI:last-child > OL{
            background:red! important;
        }
    
    /* Ungelesene Themen ausblenden */
    
        .box[data-box-identifier="com.woltlab.wbb.UnreadThreads"] {
        display: none! important;
        }    
        
    /* Aufzählungszeichen ist fett */
    
        .paginationTop > nav:nth-child(1) > ul:nth-child(1) > li:nth-child(n+2) > a:nth-child(1):hover,
        .paginationTop > nav:nth-child(1) > ul:nth-child(1) > li:nth-child(n+3) > a:nth-child(1):hover,
        .messageListPagination > nav:nth-child(1) > ul:nth-child(1) > li:nth-child(n+2) > a:nth-child(1):hover,
        #content > FOOTER > DIV > NAV > UL > LI:nth-child(n+1) > A:hover{
            color:white! important;
            background:#EAA221! important;
        }
    
    /* Untere Boxen auch blau */
        .boxesFooterBoxes{
            background:#3b83bd! important;
        }
    	
    /* PopUps ausblenden */	
    	
    	@-moz-document
        url-prefix("https://www.camp-firefox.de/forum/forum/"),
        url-prefix("https://www.camp-firefox.de/suchergebnisse/"),
        url-prefix("https://www.camp-firefox.de/forum/ungelesene-beitraege/")
    {
        .popover { display: none; }
    }	
    	
        
    /* Aktiv für alle Webseiten */
    
         * { text-shadow: transparent 0px 0px 0px, rgba(0,0,0,0.68) 0 0 0 !important
        }    
        
    /* Beitrag bearbeiten hochsetzen */
    
        .wbbPost {
            position: relative !important;
            }
    
        .messageSidebar + .messageContent {
            padding-top: 54px !important;
            }
    
        .messageFooterGroup {
            position: absolute !important;
            top: 0 !important;
            left: 260px !important;
            right: 30px !important;
            }    
        .jsReportPost.jsOnly {
            margin-right: -19px !important;
           }
    	   
    /* URL Link - Intern */
    	.messageSignature * a {
    		color:blue !important;
        } 
    
    /* URL Link - Extern */
    	a.externalURL {
    		color: red !important;
        }
    	.messageSignature * .externalURL Span{
    		color: red !important;
        }
    	.messageSignature * .externalURL{
    		color: red !important;
        } 	
    }
    
    /* Forenteile besonders hervorheben */
    
    	body[data-board-id="20"] .username::after { 
        
        content:"!!!Achtung ich bin im Android-Forum!!!";
        font-size: 24px !important;
        color: red !important;
       } 
       
    	body[data-board-id="24"] .username::after { 
        
        content:"!!!Achtung ich bin im iOS-Forum!!!";
        font-size: 24px !important;
        color: red !important;
       }  
       
    /* PopUps auf Link ausblenden */
    
    @-moz-document url-prefix(https://www.camp-firefox.de/forum/){
    
    .popover {
        display: none !important;
    }
    }
    
    /* Alles Anzeigen und Kopieren animiert */
    
    @-moz-document url-prefix(https://www.camp-firefox.de/forum/thema/) {
    
    .codeBox .codeBoxHeader {
        position: sticky !important;
        top: 10px !important;
        z-index: 1 !important;
        padding: 10px 10px 10px !important;
        margin: -10px -10px 0 !important;
        background-color: #fafafa !important;
        align-items: center !important;
        display: flex !important;
        min-height: 24px !important;
    }
    
    span.toggleButton.icon.icon24.fa-expand.pointer.jsToggleButtonEnabled::after {
        content: "Alles anzeigen" !important;
        padding-left: 8px !important;
        padding-top: 0 !important;
        color: green !important;
        font-family: "Open Sans", Arial, Helvetica, sans-serif!important;
    }
    span.toggleButton.icon.icon24.pointer.jsToggleButtonEnabled.fa-compress::after {
        content: "Weniger anzeigen" !important;
        padding-left: 8px !important;
        padding-top: 0 !important;
        color: blue !important;
        font-family: "Open Sans", Arial, Helvetica, sans-serif!important;
    }
    
    span.toggleButton.icon.icon24.fa-expand.pointer.jsToggleButtonEnabled {
        min-width: 180px !important;
        margin-right: 20px !important;
        color: blue !important;
    }
    span.toggleButton.icon.icon24.pointer.jsToggleButtonEnabled.fa-compress {
        min-width: 180px !important;
        margin-right: 20px !important;
        color: green !important;
    }
    
    span.toggleButton.icon.icon24.fa-expand.pointer.jsToggleButtonEnabled:hover,
    span.toggleButton.icon.icon24.pointer.jsToggleButtonEnabled.fa-compress:hover {
        color: red !important;
    }
    
    div.codeBoxHeader span.icon.icon24.fa-files-o.pointer::after {
        content: "Kopieren" !important;
        padding-left: 8px !important;
        padding-top: 0 !important;
        color: blue !important;
        font-family: "Open Sans", Arial, Helvetica, sans-serif!important;
    }
    
    div.codeBoxHeader span.icon.icon24.fa-files-o.pointer:hover::after {
        content: "Kopieren" !important;
        padding-left: 8px !important;
        padding-top: 0 !important;
        color: green !important;
        font-family: "Open Sans", Arial, Helvetica, sans-serif!important;
    }
    
    div.codeBoxHeader span.icon.icon24.fa-files-o.pointer {
        color: green !important;
        min-width: 140px !important;
        margin-right: 15px !important;
    }
    
    div.codeBoxHeader span.icon.icon24.fa-files-o.pointer:hover {
        color: red !important;
        min-width: 140px !important;
        margin-right: 15px !important;
    }
    .messageGroupStarter .messagePublicationTime .datetime::after { background: #008000;color:white; font-size:15px;
      content: "Themenstarter" !important;
      border-radius: 10px !important;
      margin-left: 10px !important;
      padding-left: 5px !important;
      padding-right: 5px !important;
    }
    }
    Alles anzeigen

    Woran hängts? Oder ist dies eine Änderung in der Forensoftware?

  • Downloadfenster wird nicht mehr angezeigt im aktuellen Nightly

    • Boersenfeger
    • 8. April 2025 um 16:31

    Ich danke Euch! :):thumbup:

Unterstütze uns!

Jährlich (2025)

90,1 %

90,1% (585,86 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon