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

  • Symbole in den Kontextmenüs [ Update ]

    • Boersenfeger
    • 18. Oktober 2022 um 18:13

    Danke, hab den Code jetzt in der Zeile 8 für mich umgeschrieben, das Icon Text.png liegt im Ordner

    c:\Users\Ich\AppData\Roaming\Mozilla\Firefox\Profiles\1234567.Nightly\chrome\Icons\

    Wird aber nicht angezeigt....

    CSS
    #context-paste-no-formatting::before {
        margin-right: 3px !important; 
        margin-left: -8px !important;
        content: '' !important;
        display: block !important;
        width: 19px !important;
        height: 15px !important;
        background-image: url ("..//icons/Text.png") !important;
        background-repeat: no-repeat !important;
        background-position: 0px 0px !important;
        background-size: 15px 15px !important;
        }
    Alles anzeigen

    Habe seit der Version 108 aber das Problem, das das ICON vom Script CSS Loader.uc.js nur halb auf der Statuszeile angezeigt wird und ich im Kontext nicht bis oben hinscrollen kann um so die Änderung anzustoßen. Ein Neustart erbrachte keine Abhilfe. Kann jetzt aber nicht weiter tüfteln. Die Arbeit ruft....

  • Symbole in den Kontextmenüs [ Update ]

    • Boersenfeger
    • 18. Oktober 2022 um 17:34

    Nachfrage: Hat jemand für diesen Eintrag einen Button?

    Das ist im Kontextmenü der Antwortbox sichtbar, wie etwa in diesem Forum... :)

  • TamperMonkey versus ViolentMonkey

    • Boersenfeger
    • 18. Oktober 2022 um 14:06

    Violentmonkey 2.13.3 ist erschienen. Vielleicht gehts damit ja auch wieder...

  • In memoriam

    • Boersenfeger
    • 16. Oktober 2022 um 08:45

    Mit nur 63 Jahren starb gestern die Sängerin, Songwriterin und Pianistin Joyce Sims. :( Eine Todesursache wurde nicht mitgeteilt.

    Ihr großer Hit Come into my Life aus 1987 war und ist ein Discohit.

  • FF mit nur einem Profil neu installieren

    • Boersenfeger
    • 12. Oktober 2022 um 18:38
    Zitat von .DeJaVu

    Wie oben erwähnt, entscheidet der Online-Installer über die Bits, die es erkennt und installiert Firefox ohne weitere Interaktion. Das mag für viele ausreichend sein, Standardinstallation, übergeht aber die benutzerdefinierten Optionen. Und das finde ich schade. Und manch einer will gar nicht den Wartungsdienst, oder die Verknüpfungen.

    Deswegen beziehe ich meinen Firefox auch immer von hier:

    Lade Dir den Firefox Browser in Deutsch und in über 90 weiteren Sprachen herunter
    Das Internet spricht viele Sprachen. Damit du das Beste für dich aus dem Web holst, stellen wir den Firefox Browser auch auf Deutsch und in mehr als 90…
    www.mozilla.org

    Hier ist er dann auch gleich auf Deutsch.... :)

  • Thunderbird 102.3.1 / Nach vielen Neustarts beim Posteingangsordner der Throbber im Dauerlauf

    • Boersenfeger
    • 12. Oktober 2022 um 18:19

    Du musst dann in TB die gleichen Vorarbeiten, wie für Firefox machen!

  • Thunderbird 102.3.1 / Nach vielen Neustarts beim Posteingangsordner der Throbber im Dauerlauf

    • Boersenfeger
    • 12. Oktober 2022 um 17:58
    Zitat von FuchsFan

    Da habe ich zu Thunderbird noch eine Frage. Nun habe ich sehr viel daran "gebastelt", musste natürlich immer mit Neustart abschließen.

    In welcher Art und Weise hast du denn gebastelt?

    Wenn du CSS implementiert hast und zusätzlich Scripte nutzt, könntest du auch dieses Script in TB nutzen um nicht jedesmal einen Neustart durchführen zu müssen! Es basiert auf dem gleichnamigen für Firefox:

    JavaScript
    // ==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 4 - 91*
    // @charset        UTF-8
    // @version        0.0.4g
    // @note           Version 0.0.4.g ermoeglicht "Styles importieren" per Mittelklick und Verwendung
    // @note           eines anderen Dateimanager (s. vFileManager in Zeile 54)
    // @note           ergänzt um einen Parameter für den Dateimanager (s. vFMParameter in Zeile 56) 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
    // @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 ******
    
    Da der CSS-Ordner im Chrome-Ordner erstellt wurde, CSS-Dateien dort ablegen - speichern.
    Diejenigen, deren Dateiname mit "xul-" beginnen, diejenigen, die mit ".as.css" enden, sind AGENT_SHEET, 
    andere außer USER_SHEET werden gelesen. Da der Inhalt der Datei nicht überprüft wird,
    darauf achten, @ Namespace Angabe 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
    
    Verwenden des in "view_source.editor.path" angegebenen Editors
    Ordner kann geändert werden, indem ein Pfad in "UserCSSLoader.FOLDER" eingefügt wird
    
     **** Anleitung Ende ****/
    
    (function(){
    
    let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
    if (!window.Services)
        Cu.import("resource://gre/modules/Services.jsm");
    // 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: 'H:\\TotalCommander\\TotalCmd64.exe',
        vFMParameter: '/T',
        USE_UC: "UC" in window,
        AGENT_SHEET: Ci.nsIStyleSheetService.AGENT_SHEET,
        USER_SHEET : Ci.nsIStyleSheetService.USER_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("CSS");
            }
            if (!aFolder.exists() || !aFolder.isDirectory()) {
                aFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0664);
            }
            delete this.FOLDER;
            return this.FOLDER = aFolder;
        },
        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",
                accesskey: "C",
                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"
            });
            menupopup.appendChild(menu);
            let mp = $C("menupopup", {
                id: "usercssloader-submenupopup" });
            menu.appendChild(mp);
            mp.appendChild($C("menuitem", {
                label: "Styles importieren",
                accesskey: "R",
                acceltext: "Alt + R",
                oncommand: "UCL.rebuild();"
            }));
            mp.appendChild($C("menuseparator"));
            mp.appendChild($C("menuitem", {
                label: "CSS Datei erstellen",
                accesskey: "D",
                oncommand: "UCL.create();"
            }));
            mp.appendChild($C("menuitem", {
                label: "CSS Ordner öffnen",
                accesskey: "O",
                oncommand: "UCL.openFolder();"
            }));
            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\');"
            }));
                    // mp.appendChild($C("menuitem", {
                // label: "UserCSSLoader.disabled_list bearbeiten",
                // hidden: false,
                // oncommand: "UCL.editUserCSS(\'UserCSSLoader.disabled_list\');"
            // }));
            mp.appendChild($C("menuseparator"));
            mp.appendChild($C("menuitem", {
                label: "Style Test (Chrome)",
                id: "usercssloader-test-chrome",
                hidden: true,
                accesskey: "C",
                oncommand: "UCL.styleTest(window);"
            }));
            mp.appendChild($C("menuitem", {
                label: "Style Test (Web)",
                id: "usercssloader-test-content",
                hidden: true,
                accesskey: "W",
                oncommand: "UCL.styleTest();"
            }));
            mp.appendChild($C("menuitem", {
                label: "Styles dieser Seite auf userstyles.org finden",
                hidden: true,
                accesskey: "S",
                oncommand: "UCL.searchStyle();"
            }));
    
            menu = $C("menu", {
                label: ".uc.css",
                accesskey: "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" }));
    
            $('mail-menubar').appendChild(cssmenu);
    
            $("mailKeys").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 = "Style importiert";
                else
                    XULBrowserWindow.statusTextField.label = "Styles importieren";
            }
        },
        loadCSS: function(aFile) {
            var 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) {
            var CSS = this.readCSS[aLeafName];
            var menuitem = document.getElementById("usercssloader-" + aLeafName);
            if (!CSS) {
                if (menuitem)
                    menuitem.parentNode.removeChild(menuitem);
                return;
            }
            if (!menuitem) {
                menuitem = document.createXULElement("menuitem");
                menuitem.setAttribute("label", aLeafName);
                menuitem.setAttribute("id", "usercssloader-" + aLeafName);
                menuitem.setAttribute("class", "usercssloader-item " + (CSS.SHEET == this.AGENT_SHEET? "AGENT_SHEET" : "USER_SHEET"));
                menuitem.setAttribute("type", "checkbox");
                menuitem.setAttribute("autocheck", "false");
                menuitem.setAttribute("oncommand", "UCL.toggle('"+ aLeafName +"');");
                menuitem.setAttribute("onclick", "UCL.itemClick(event);");
                menuitem.setAttribute("onmouseup", "if (event.button == 1) event.preventDefault();");
                document.getElementById("usercssloader-menupopup").appendChild(menuitem);
            }
            menuitem.setAttribute("checked", CSS.enabled);
        },
        toggle: function(aLeafName) {
            var CSS = this.readCSS[aLeafName];
            if (!CSS) return;
            CSS.enabled = !CSS.enabled;
            this.rebuildMenu(aLeafName);
        },
        itemClick: function(event) {
            if (event.button == 0) return;
            event.preventDefault();
            event.stopPropagation();
            let label = event.currentTarget.getAttribute("label");
            if (event.button == 1) {
                this.toggle(label);
            }
            else if (event.button == 2) {
                // closeMenus(event.target);
                let file = this.getFileFromLeafName(label)
                this.edit(file);
            }
        },
        getFileFromLeafName: function(aLeafName) {
            let f = this.FOLDER.clone();
            f.QueryInterface(Ci.nsIFile); // use appendRelativePath
            f.appendRelativePath(aLeafName);
            return f;
        },
        styleTest: function(aWindow) {
            aWindow || (aWindow = this.getFocusedWindow());
            new CSSTester(aWindow, function(tester){
                if (tester.saved)
                    UCL.rebuild();
            });
        },
        searchStyle: function() {
            let word;
            try {
                word = gBrowser.currentURI.host;
            } catch {
                word = gBrowser.currentURI.spec;
            }
            openWebLinkIn("https://userstyles.org/styles/search/" + word, "tab", {});
        },
        openFolder:function(){
            if (this.vFileManager.length != 0) {
                var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
                var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
                var args=[this.vFMParameter,this.FOLDER.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.FOLDER.launch();
            }
        },
        editUserCSS: function(aLeafName) {
            let file = Services.dirsvc.get("UChrm", Ci.nsIFile);
            file.appendRelativePath(aLeafName);
            this.edit(file);
        },
        edit: function(aFile) {
            var 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 {
                var UI = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
                UI.charset = window.navigator.platform.toLowerCase().indexOf("win") >= 0? "Shift_JIS": "UTF-8";
                var path = UI.ConvertFromUnicode(aFile.path);
                var app = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile);
                app.initWithPath(editor);
                var 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();
            [...document.styleSheets].slice().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;
            [...document.styleSheets].slice().forEach(function(css) {
                if (!re.test(css.href)) return;
                let fileURL = decodeURIComponent(css.href).split("?")[0];
                let aLeafName = fileURL.split("/").pop();
                let m = document.createXULElement("menuitem");
                m.setAttribute("label", aLeafName);
                m.setAttribute("tooltiptext", fileURL);
                m.setAttribute("id", "usercssloader-" + aLeafName);
                m.setAttribute("type", "checkbox");
                m.setAttribute("autocheck", "false");
                m.setAttribute("checked", "true");
                m.setAttribute("oncommand", "this.setAttribute('checked', !(this.css.disabled = !this.css.disabled));");
                m.setAttribute("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).getFileFromURLSpec(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: 
            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) {
            var aFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile)
            aFile.initWithPath(this.path);
        
            var isExists = aFile.exists(); // Wenn die Datei existiert true
            var lastModifiedTime = isExists ? aFile.lastModifiedTime : 0;
            var isForced = this.lastModifiedTime != lastModifiedTime; // Wenn es eine Änderung in der Datei gibt true
    
            var fileURL = Services.io.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler).getURLSpecFromFile(aFile);
            var 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;
        },
    };
    
    function CSSTester(aWindow, aCallback) {
        this.win = aWindow || window;
        this.doc = this.win.document;
        this.callback = aCallback;
        this.init();
    }
    CSSTester.prototype = {
        sss: Components.classes["@mozilla.org/content/style-sheet-service;1"]
                        .getService(Components.interfaces.nsIStyleSheetService),
        preview_code: "",
        saved: false,
        init: function() {
            this.dialog = openDialog(
                "data:text/html;charset=utf8,"+encodeURIComponent('<!DOCTYPE HTML><html lang="ja"><head><title>CSSTester</title></head><body></body></html>'),
                "",
                "width=550,height=400,dialog=no");
            this.dialog.addEventListener("load", this, false);
        },
        destroy: function() {
            this.preview_end();
            this.dialog.removeEventListener("unload", this, false);
            this.previewButton.removeEventListener("click", this, false);
            this.saveButton.removeEventListener("click", this, false);
            this.closeButton.removeEventListener("click", this, false);
        },
        handleEvent: function(event) {
            switch(event.type) {
                case "click":
                    if (event.button != 0) return;
                    if (this.previewButton == event.currentTarget) {
                        this.preview();
                    }
                    else if (this.saveButton == event.currentTarget) {
                        this.save();
                    }
                    else if (this.closeButton == event.currentTarget) {
                        this.dialog.close();
                    }
                    break;
                case "load":
                    var doc = this.dialog.document;
                    doc.body.innerHTML = '\
                        <style type="text/css">\
                            :not(input):not(select) { padding: 0px; margin: 0px; }\
                            table { border-spacing: 0px; }\
                            body, html, #main, #textarea { width: 100%; height: 100%; }\
                            #textarea { font-family: monospace; }\
                        </style>\
                        <table id="main">\
                            <tr height="100%">\
                                <td colspan="4"><textarea id="textarea"></textarea></td>\
                            </tr>\
                            <tr height="40">\
                                <td><input type="button" value="Vorschau" id="Vorschau"/></td>\
                                <td><input type="button" value="Speichern" id="Speichern"/></td>\
                                <td width="80%"><span class="log"></span></td>\
                                <td><input type="button" value="Schließen" id="Schliessen"/></td>\
                            </tr>\
                        </table>\
                    ';
                    this.textbox = doc.querySelector("textarea");
                    this.previewButton = doc.querySelector('input[value="Vorschau"]');
                    this.saveButton = doc.querySelector('input[value="Speichern"]');
                    this.closeButton = doc.querySelector('input[value="Schließen"]');
                    this.logField = doc.querySelector('.log');
    
                    var code = "@namespace url(" + this.doc.documentElement.namespaceURI + ");\n";
                    code += this.win.location.protocol.indexOf("http") === 0?
                        "@-moz-document domain(" + this.win.location.host + ") {\n\n\n\n}":
                        "@-moz-document url(" + this.win.location.href + ") {\n\n\n\n}";
                    this.textbox.value = code;
                    this.dialog.addEventListener("unload", this, false);
                    this.previewButton.addEventListener("click", this, false);
                    this.saveButton.addEventListener("click", this, false);
                    this.closeButton.addEventListener("click", this, false);
    
                    this.textbox.focus();
                    let p = this.textbox.value.length - 3;
                    this.textbox.setSelectionRange(p, p);
    
                    break;
                case "unload":
                    this.destroy();
                    this.callback(this);
                    break;
            }
        },
        preview: function() {
            var code = this.textbox.value;
            if (!code || !/\:/.test(code))
                return;
            code = "data:text/css;charset=utf-8," + encodeURIComponent(this.textbox.value);
            if (code == this.preview_code)
                return;
            this.preview_end();
            var uri = Services.io.newURI(code, null, null);
            this.sss.loadAndRegisterSheet(uri, Ci.nsIStyleSheetService.AGENT_SHEET);
            this.preview_code = code;
            this.log("Preview");
        },
        preview_end: function() {
            if (this.preview_code) {
                let uri = Services.io.newURI(this.preview_code, null, null);
                this.sss.unregisterSheet(uri, Ci.nsIStyleSheetService.AGENT_SHEET);
                this.preview_code = "";
            }
        },
        save: function() {
            var data = this.textbox.value;
            if (!data) return;
    
            var fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
            fp.init(window, "", Ci.nsIFilePicker.modeSave);
            fp.appendFilter("CSS Files","*.css");
            fp.defaultExtension = "css";
            if (window.UCL)
                fp.displayDirectory = UCL.FOLDER;
            var res = fp.show();
            if (res != fp.returnOK && res != fp.returnReplace) return;
    
            var suConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
            suConverter.charset = "UTF-8";
            data = suConverter.ConvertFromUnicode(data);
            var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
            foStream.init(fp.file, 0x02 | 0x08 | 0x20, 0664, 0);
            foStream.write(data, data.length);
            foStream.close();
            this.saved = true;
        },
        log: function() {
            this.logField.textContent = dateFormat(new Date(), "%H:%M:%S") + ": " + $A(arguments);
        }
    };
    
    UCL.init();
    
    function $(id) { return document.getElementById(id); }
    function $A(arr) { return [...arr].slice(); }
    function $C(name, attr) {
        var el = document.createXULElement(name);
        if (attr) Object.keys(attr).forEach(function(n) { 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([...arguments].slice()); }
    
    })();
    Alles anzeigen

    PS: Zeile 54

    vFileManager: 'H:\\TotalCommander\\TotalCmd64.exe',  solltest du ggf. anpassen!

  • FF-Fussball Thread

    • Boersenfeger
    • 11. Oktober 2022 um 14:11

    Nachklapp: Eine hohe 6-stellige Abfindungssumme ist dem Vernehmen nach im Vertrag von I.P. festgeschrieben. Lt Transfermarkt beträgt der Marktwert mittlerweile 1 Mio Euro.

    Immanuel Pherai - Spielerprofil 22/23
    www.transfermarkt.de

    Bei Lukebakio dürfte sich diese Summe um das 7fache höher bewegen... :)

  • FF-Fussball Thread

    • Boersenfeger
    • 10. Oktober 2022 um 17:51

    Jo, wir haben auch so einen... Immanuel Pherai, gekommen von Dortmund II und jetzt schon einer der Spieler der 2. Liga. Vermutlich wird er sich so in den Fokus von Erstligisten spielen, so dass er im Sommer leider wieder weg sein wird, aber hier ist er erstmal ein Star....

    Doppelpack gegen Sankt Pauli am Samstag.... die Stimmung, die er verbreitet, sieht und hört man in dem nachfolgenden Video:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    ab Minute 25:45 , wo er das Siegtor macht.

    Bei Bedarf kann man sich auch den ganzen Beitrag ansehen :P

  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 8. Oktober 2022 um 10:30

    Mach ich dann am Montag, wenn ich wieder am Gerät sitze... vielen Dank, damit erledigt! :)

  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 7. Oktober 2022 um 12:22
    CSS
    #bottomBox
        {
            margin-left: 60px !important;
            margin-top: -15px !important;
            margin-bottom: 40px !important;
        }

    So passt es jetzt für mich! Hoffen wir mal, das das noch fehlende UpDate von heute es nicht wieder verwürfelt! Vielen Dank! :)

  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 7. Oktober 2022 um 11:14

    Vielen Dank an Alle, ich habe jetzt erst mal den Code aus #15 genommen und warte auf das heutige Nightly. :)

    Danach würde ich noch gerne die 3 letzten Boxen, " Informationen zur Lizenzierung" etc soweit nach Rechts verschieben, damit der Anfang mit dem anderen Text untereinander steht. Eigene Versuche dazu schlugen fehl. :S

  • FF-Fussball Thread

    • Boersenfeger
    • 7. Oktober 2022 um 10:56

    Das so etwas auch in die Hose gehen kann, zeigt das Kurz-Engagement von Mark van Bommel bei WOB...

  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 6. Oktober 2022 um 18:45

    ...

    #aboutDialog

    {

    min-height: 350px !important;

    min-width: 1350px !important;

    }

    Damit sieht es so aus...

    nach links und in einer Ausrichtung wäre schön... :)

  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 6. Oktober 2022 um 18:39

    Ergibt hier

    Ich versuche mal andere Werte....

  • FF-Fussball Thread

    • Boersenfeger
    • 6. Oktober 2022 um 18:24

    Bei Hertha ist jetzt aber richtig Feuer unter dem Dach, der Investor Windhorst will raus bei Hertha BSC, oder ist alles nur ein Ablenkungsmanöver, da gegen Windhorst und seiner Firma Tennor wird von einer Wirtschaftsdetektei wegen einer angeblichen Schmiergeldaffäre ermittelt wird, die mit dem ehemaligen Präsident Gegenbauer zu tun haben soll.

    Diverse Äußerungen von L.W. werden jetzt von Hertha zurückgewiesen....

    Windhorst-Vorwürfe "unzutreffend": Hertha gibt Stellungnahme ab
    Am Mittwoch bot Hertha-Investor Lars Windhorst den Rückkauf seiner Anteile an und kritisierte speziell Präsident Kay Bernstein. Der Berliner Klub reagierte nun…
    www.kicker.de

    Es bleibt spannend.... vor allem, wie die Mannschaft damit umgeht....

  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 6. Oktober 2022 um 18:16

    Danke, damit rutscht aber der ganze Text nach rechts, eigentlich sollte sich das ganze Fenster nach rechts vergrößern und es so aussehen lassen, wie in #1 das 2. Bild zeigt.

  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 6. Oktober 2022 um 17:58

    Prima, den Ansatz habe ich mit height: 650px !important; verbessert, allerdings bringt der Eintrag weight: 1020px !important; nicht die Verbreiterung der ganzen Box und der Abstand zwischen 64bit und "Sie sind..." ist viel zu groß. Noch weitere Vorschläge? :)


  • Sidebar Hover Code anpassen

    • Boersenfeger
    • 6. Oktober 2022 um 13:38

    :love: Mit diesem Code klappt es jetzt prima, aber erst, nach dem ich das 2. gestrige Nightly Build installiert hatte. Dankeschön!

    Nun mache ich in einem neuen Thread weiter

    Thema

    About Dialog CSS stellt nicht mehr alles dar

    Moin, wie im Post Sidebar Hover Code anpassen

    angekündigt, stelle ich hier meinen 2. Problemcode im aktuellen Nightly vor:

    (Quelltext, 310 Zeilen)

    Es fehlt der Build-Strang:





    Wo hakt es denn hier und ist es bei den Verwendern des CSS genauso?

    Lieben Dank! :)
    Boersenfeger
    6. Oktober 2022 um 13:36
  • About Dialog CSS stellt nicht mehr alles dar

    • Boersenfeger
    • 6. Oktober 2022 um 13:36

    Moin, wie im Post Sidebar Hover Code anpassen

    angekündigt, stelle ich hier meinen 2. Problemcode im aktuellen Nightly vor:

    CSS
            /* About : Dialog */
    
        @-moz-document url-prefix("chrome://browser/content/aboutDialog.xhtml") {
    
        #aboutDialog,
        #aboutDialogContainer,
        #agent .textbox-input-box,
        #agent,
        #bottomBox,
        #clientBox,
        #leftBox,
        #trademark,
        #updateBox > vbox:nth-child(2) > hbox:nth-child(2),
        #updateButton,
        #version,
        #version::before
        {
            font-family: 'Courier New' !important;
        }
    
        
        #aboutDialog vbox,
        #aboutDialogContainer hbox,
        #clientBox vbox,
        #contributeDesc > label:nth-child(1),
        #contributeDesc > label:nth-child(2),
        #releasenotes,
        #trademark,
        #updateButton,
        label.bottom-link:nth-child(3),
        [href='about:credits'],
        [href='about:license'],
        [href='about:rights'],
        [href='https://www.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog']
        {
            font-size: 15px !important;
        }
    
    
        #contributeDesc > label:nth-child(1),
        #contributeDesc > label:nth-child(2),
        #releasenotes,
        label.bottom-link:nth-child(3),
        [href='about:credits'],
        [href='about:license'],
        [href='about:rights'],
        [href='https://www.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog']
        {
            text-decoration: none !important;
        }
    
        #aboutDialog,
        #aboutDialogContainer,
        #bottomBox,
        #clientBox,
        #trademark
        {
            background-color: #202340 !important;
        }
        
        #version::before
        {
            content: 'Boersenfeger seine Nightly-Version ist:';
            font-size: 17px !important;
            font-weight: bold !important;
            color: #f08080 !important;
            margin-right: 6px !important;
            margin-left: -24px !important;
        }
    
        #version
        {
            font-size: 16px !important;
            margin-top: 30px !important;
            color: #fff !important;
        }
    
        #aboutDialog
        {
            height: 350px !important;
        }
    
        #agent
        {   appearance: none !important;
            margin: 50px 40px 84px -1px !important;
            max-height: 56px !important;
            padding-top: -1px !important;
            text-align: center !important;
            border-radius: 14px !important;
            max-width: 1000px !important;
        }
    
        #agent .textbox-input-box
        {
            margin-top: 11px !important;
            margin-left: 12px !important;
        }
    
        #bottomBox
        {
            margin-left: -23px !important;
            margin-top: -15px !important;
            margin-bottom: 40px !important;
        }
    
        #updateBox > vbox:nth-child(2) > hbox:nth-child(2)
        {
            margin-top: -25px !important;
            margin-bottom: 20px !important;
        }
    
        #trademark
        {
            margin-top: 16px !important;
            margin-bottom: -40px !important;
        }
    
        #leftBox
        {
            margin-top: 60px !important;
        }
    
    
        /* Build ID about Dialog css, Text mittig.*/
    
        #rightBox textarea
        {
            background-color: white !important;
            color: black !important;
            text-align: center !important;
            margin-top: 50px !important;
            margin-bottom: 10px !important;
        }
    
        #icons > .icon
        {
            margin-top: 8px !important;
        }
    
        #updateButton
        {    
            appearance: none !important;
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index1.gif') 
            no-repeat !important;
            background-color: gainsboro !important;
            background-position: 13px 3px !important;
            min-width: 360px !important;
            padding-left: 30px !important;
            border-radius: 14px !important;
            border: 2px solid red!important;
            color: black !important;
        }
    
        #updateButton:hover
        {
            background-color: #b2edfa !important;
        }
    
        #updateButton .button-box
        {
            padding-top: 0 !important;
            padding-bottom: 0 !important;
            padding-start: 3px !important;
            padding-end: 3px !important;
        }
    
    
        #updateBox vbox description.text-blurb label.text-link
        {
            display: none !important;
        }
    
        [href='about:license']
        {
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index1.gif') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 30px 0 70px !important;
            padding: 0 20px 0 40px !important;
            border: 2px solid dodgerblue !important;
            border-radius: 14px !important;
        }
    
        [href='about:license']:hover
        {
            background-color: #b2edfa !important;
        }
    
        [href='about:rights']
        {
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index3.gif') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 29px 0 -30px !important;       
            padding: 0 20px 0 40px!important;
            border: 2px solid red!important;
            border-radius: 14px !important;
        }
    
        [href='about:rights']:hover
        {
            background-color: #b2edfa !important;
        } 
        
    
        label.bottom-link:nth-child(3)
        {        
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index4.png') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 -30px 0 -30px!important;
            padding: 0 20px 0 40px !important;
            border: 2px solid green!important;
            border-radius: 14px !important;
        }
    
        label.bottom-link:nth-child(3):hover
        {
            background-color: #b2edfa !important;
        }
    
        [href='https://www.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog']
        {        
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/Fuchs2.png') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 -2px 0 -2px !important;
            padding: 0 15px 0 35px!important;
            border: 2px solid cadetblue !important;
            border-radius: 14px !important;
        }
    
        [href='https://www.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog']:hover
        {
            background-color: #b2edfa !important;
        }
    
        [href='about:credits']
        {
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index8.png') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 5px 0 5px !important;
            padding:0 15px 0 35px !important;
            border: 2px solid cadetblue !important;
            border-radius: 14px !important;
        }
    
        [href='about:credits']:hover
        {
            background-color: #b2edfa !important;
        }
    
        #contributeDesc > label:nth-child(1)
        {
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index10.png') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 3px 0 3px !important;
            padding: 0 15px 0 35px  !important;
            border: 2px solid cadetblue !important;
            border-radius: 14px !important;
        }
    
        #contributeDesc > label:nth-child(1):hover
        {
            background-color: #b2edfa !important;
        }
    
        #contributeDesc > label:nth-child(2)
        {
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index9.png') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 -2px  0 10px !important;
            padding: 0 15px 0 35px !important;
            border: 2px solid cadetblue !important;
            border-radius: 14px !important;
        }
    
        #contributeDesc > label:nth-child(2):hover
        {
            background-color: #b2edfa !important;
        }
    
        #releasenotes
        {
            background: gainsboro url('file:///c:/Users/Martin/AppData/Roaming/Mozilla/Firefox/Profiles/5p31hc0i.Nightly/chrome/Icons/index11.png') 
            no-repeat !important;
            background-position: 10px 3px !important;
            color: black !important;
            margin: 0 20px 0 35px !important;
            padding: 0 20px 0 30px !important;
            border: 2px solid cadetblue !important;
            border-radius: 14px !important;
            margin-top: 35px !important;
        }
    
        #releasenotes:hover
        {
            background-color: #b2edfa !important;
        }
    }
    Alles anzeigen

    Es fehlt der Build-Strang:

    Wo hakt es denn hier und ist es bei den Verwendern des CSS genauso?

    Lieben Dank! :)

Unterstütze uns!

Jährlich (2026)

76,1 %

76,1% (589,79 von 775 EUR)

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