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. FuchsFan

Beiträge von FuchsFan

  • Anpassung für About-Dialog funktioniert nicht mehr

    • FuchsFan
    • 29. Dezember 2021 um 20:26
    Zitat von .DeJaVu

    Ich schreibe das nicht aus Jux und Dollerei

    Das ist es doch. In meinem Beitrag steckt natürlich eine ordentliche Portion Ironie, weil ich es einfach nicht verstehen konnte, wieso er nicht den bereinigten Code installiert. Besser kann man es doch nicht haben, wenn einem schon alles mundgerecht serviert wird.

    Wenn dann mal wieder Fehler auftreten sollten, dann wird auch wieder Hilfe da sein.

  • Anpassung für About-Dialog funktioniert nicht mehr

    • FuchsFan
    • 29. Dezember 2021 um 18:44
    Zitat von .DeJaVu

    Und mit allen Änderungen, also auch die von Andreas, sieht es optimierter so aus

    Ja, und der funktioniert ja auch perfekt. :thumbup:

    Aber glaube mir, er hat Angst diesen wohl sortierten Code zu installieren, denn dann sieht er nicht mehr durch. ;)

    Er braucht das Durcheinander, dann fühlt er sich wohl, und hat ja dann auch die Möglichkeit offen, wie er selbst sagt, hier wieder auf Pirsch zu gehen, um Ersatzteile zu suchen. :)

    Guten Rutsch! :)

  • Extra Config Menü Icon überall verschiebbar machen?

    • FuchsFan
    • 28. Dezember 2021 um 18:18
    Zitat von 2002Andreas

    Hier auch, aber eben nur in den Standardleisten.

    So ist es, Andreas. :)


    Zitat von omar1979

    Habe es auch geändert, funkt immernochnicht..

    Dann nimm doch mal bitte das Script und teste damit.

    CSS
    // ==UserScript==
    // @name           extras_config_menu.uc.js
    // @compatibility  Firefox 6*.*
    // @include        main
    // @version        1.0.20190504
    // ==/UserScript==
    
    var uProfMenu = {
      // Beginn der Konfiguration
      // In der folgenden Zeile (11) den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen:
      TextOpenExe: 'D:\\PortableProgramme\\Notepad++8.1.9.Portable.x64\\notepad++.exe',
      // Falls gewuenscht, in Zeile 15 einen Dateimanager eintragen (komplett leer lassen fuer Dateimanager des Systems) Beispiele:
      // vFileManager: 'E:\\Total Commander\\Totalcmd.exe',
      // vFileManager: 'C:\\Program Files (x86)\\FreeCommander\\FreeCommander.exe'
      vFileManager: '',
      // In der folgenden Zeile (19) 'menu' eintragen, damit es unter "Extras" als Menue erscheint, sonst die id des gewuenschten
      // Elements *nach* dem der Button erscheinen soll (z.B. 'urlbar', 'searchbar', 'undoclosetab-button','abp-toolbarbutton')
      // Bitte nicht so etwas wie die Menue- oder Navigationsleiste (sondern einen Menuepunkt oder einen Button mit id auf diesen Leisten) eintragen:
      warpmenuto: 'urlbar-container',
     // Unter Linux sollte/kann versucht werden, die userChromeJS-Skripte zu sortieren, unter Windows ist das evtl. nicht noetig (die Sortierung wird Gross- und Kleinschreibung *nicht* beruecksichtigen - dazu wird die sort()-Funktion entsprechend mit einer Vergleichsfunktion aufgerufen)
      sortScripts: 0,   // 1 zum Erzwingen der Sortierung
      // Einbindung GM-Skripte-Ordner (0: nein, 1: Greasemonkey [Profil-Verzeichnis], 2: UserScriptLoader [Chrome-Verzeichnis], 3: Scriptish [Profil-Verzeichnis]):
      gmOrdner: 0,
      // Einbindung CSS-Ordner (0: nein, 1: UserCSSLoader-Ordner im Chrome-Verzeichnis):
      cssOrdner: 1,
      // In Zeile 30 gueltige about:Adressen eintragen, die ebenfalls aufgerufen werden sollen.
      // - Zum Ausblenden: abouts: [],
      // - Damit die about:-Seiten nicht als Untermenue, sondern direkt als Menuepunkte aufgefuehrt werden, muss das erste Element '0' sein:
      // abouts: ['0','about:about','about:addons','about:cache','about:config','about:support'],
       abouts: ['about:about','about:addons','about:cache','about:config','about:debugging','about:crashes','about:home','about:memory','about:plugins','about:preferences','about:profiles','about:support'],
      // Die normalen Firefox-Einstellungen auch zur Verfuegung stellen (0: nein, 1: ja):
      showNormalPrefs: 0,
      // Stellt "Skriptliste in Zwischenablage" zur Verfuegung (1: ja, 2: mit getrennter Nummerierung, 3: mit gemeinsamer Nummerierung) oder nicht (0):
      enableScriptsToClip: 1,
      // Um den Eintrag "Neustart" zu erzwingen (falls z.B. das andere Skript zu spaet eingebunden und nicht erkannt wird), auf 1 setzen:
      enableRestart: 0,
      // Ende der Konfiguration
    
      init: function() {
        if (this.warpmenuto.toLowerCase() == 'menu') {
          // aufgrund des gewaehlten warpmenuto als Untermenue von Extras anlegen
          var zielmenu = document.getElementById('menu_ToolsPopup');
          if (zielmenu==null) {
            userChrome.log("extras_config_menu.uc.js findet Zielmenue nicht, evtl. weil ein anderes Fenster als das Hauptfenster " +
                           "geoeffnet wurde. Falls dieser Fehler auch im Hauptfenster auftritt, bitte die vorgehende Definition " +
                           "von 'zielmenu' kontrollieren.");
            return;
          }
          var menu = zielmenu.appendChild(this.createME("menu","Config Men\u00FC",0,0,"ExtraConfigMenu"));
          menu.setAttribute("class","menu-iconic");
          menu.setAttribute("ondblclick","openTrustedLinkIn('about:config', 'tab');");
         } else {
    
          /*
          // als Button nach dem per warpmenuto gewaehlten Element anlegen (s. Kommentar ueber warpmenuto im Konfigurationsabschnitt)
          var zielmenu = document.getElementById(this.warpmenuto);
          if (zielmenu==null) {
            userChrome.log("extras_config_menu.uc.js findet Zielpunkt '"+this.warpmenuto+"' nicht, evtl. weil ein anderes Fenster als das Hauptfenster " +
                           "geoeffnet wurde. Falls dieser Fehler auch im Hauptfenster auftritt, bitte die vorgehende Definition " +
                           "von 'warpmenuto' kontrollieren.");
            return;
          }
          var menu = zielmenu.parentNode.insertBefore(document.createXULElement('toolbarbutton'), zielmenu.nextSibling);
          menu.setAttribute("id", "ExtraConfigMenu-button");
          menu.setAttribute("class", "toolbarbutton-1");
          menu.setAttribute("type", "menu");
          menu.setAttribute("tooltiptext", "Extra Config Menü\nMittelklick \öffnet about:config");
          menu.setAttribute("onclick", "if (event.button === 1 && !this.open) {openTrustedLinkIn('about:config','tab')};");
          */
    
          // als verschiebbaren Button anlegen
          if (window.__SSi == "window0") {
            CustomizableUI.createWidget({
              id: "ExtraConfigMenu-button",
              defaultArea: CustomizableUI.AREA_NAVBAR,
              label: "Extra Config Menü",
              tooltiptext: "Extra Config Menü\nMittelklick \öffnet about:config"
            });
          }
          var menu = document.getElementById("ExtraConfigMenu-button");
          menu.setAttribute("type", "menu");
          menu.setAttribute("onclick", "if (event.button == 1) openTrustedLinkIn('about:config', 'tab');");
        }
    
        //ab hier ist alles gleich, egal ob Button oder Menue
        var css = " \
          #ExtraConfigMenu, #ExtraConfigMenu-button { \
           list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnElEQVR4Xm2RzYtbZRSHn/fr3pvJzTB3qiNM2k2pMBUGhEHaqsUqdeFGQalCobgREaFu/B/cqCtxVSjoQhBEQRBmIfWDKgNGJUPt0Nhah9JJ4iSd5E6+bu5972tAO4SS5/DjXZ1znsMrNiq1eikMQqYYJCmjxNH5+zdW777L0J5KKl9VPmnf+ut9KWkwhbheuzNcOVYOmGKc5iRO0r1ykeXCx0h7kt4fC3z5wfqbQnAJwQHa5S7jAZSRuJ0mkf81cheobhBXZa+ri1uptQjHAZoZCEC1PiPgDuwxCfwerBU7b73zXn//3usCcdt4HkZ7SGZg431U51NUCgwlO3cV/bVXhR/6p9ut+nP9QYeNn7/n8qUPZxvQ/Q6VVWHk4ZqWRvlJjpx9hcGfW2wO95N2q8m3618A2WwDt/0RplSAXsBed57eyossHl5GYdHacG3zGpADM06wjQ1UUIN+CLHPvfAxojPnKLiE+bDE1R9+5GatAmgPeGCAteQ7l5GBhGSyuROyd/gFouUyWkqEErR2mwXAAA8BRS0AgMQBjSra30ZkEeDzz9Dn4ZcvMO51SMcJcTdGChmA0ABA6cAgzyG3I8jLEBylV4fWoaeIc0V7t0Uv7pFbC+CA+28mp/8+SwXKnMVmz1O9HpE+eobMZdjcoY1GIHD/NwIdoH1fBaNguzlg88pVyoUi4vTbFI8eJxsNAIfSkrliESllH/L0v0jktNNomFGv1TFrL3Fo9QSMR3jaEEXzLC09gjaKp595No0WjyCEB4zRclICUMDxtRMce/wJ1MIi2SglXShhfI/cOjxPoZRmbq4gXzt/gVrtBrdvbiG+Wf+p/mvll1BpiVAGhCDPxuAUDotz4HKHlIJON6bRbL4hhPjcMx5mkn8BBLEUrsVZbq0AAAAASUVORK5CYII=) !important; margin-right: 10px !important; margin-bottom: 2px !important; margin-top: 2px !important; \
          } \
          #ExtraConfigMenu-button > dropmarker, #ExtraConfigMenu-button > hbox > .toolbarbutton-menu-dropmarker { \
            display: none !important; \
          }";
        var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
        sss.loadAndRegisterSheet(uri,sss.AGENT_SHEET);
        menu.setAttribute("onpopupshowing","uProfMenu.getScripts(0)");
        var menupopup = menu.appendChild(this.createME("menupopup",0,0,0,"ExtraConfigMenu-popup"));
        menupopup.appendChild(this.createME("menuitem","userChrome.js","uProfMenu.edit(0,'userChrome.js');","uProfMenu_edit",0));
        // Anlegen von Untermenues fuer die userChromeJS-Skripte (befuellt werden sie spaeter)
        var submenu=menupopup.appendChild(this.createME("menu","uc.js",0,0,"submenu-ucjs"));
        var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucjs-items"));
        // var submenu=menupopup.appendChild(this.createME("menu","uc.xul",0,0,"submenu-ucxul"));
        // var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucxul-items"));
        if (this.enableScriptsToClip) menupopup.appendChild(this.createME("menuitem","Skriptliste in Zwischenablage","uProfMenu.getScripts(1)","uProfMenu_clipboard",0));
         // Ende Anlegen von Untermenues fuer die userChromeJS-Skripte
        menupopup.appendChild(document.createXULElement('menuseparator'));
        // Einbindung von Konfigdateien
        menupopup.appendChild(this.createME("menuitem","userChrome.css","uProfMenu.edit(0,'userChrome.css');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","userContent.css","uProfMenu.edit(0,'userContent.css');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","prefs.js","uProfMenu.edit(1,'prefs.js');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","user.js","uProfMenu.edit(1,'user.js');","uProfMenu_edit"),0);
        // Ende Einbindung von Konfigdateien
        menupopup.appendChild(document.createXULElement('menuseparator'));
        // Einbindung von Ordnern
        switch (this.gmOrdner) {
          case 1:
            menupopup.appendChild(this.createME("menuitem","GM-skripty","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'gm_scripts');","uProfMenu_folder"),0);
            break;
          case 2:
            menupopup.appendChild(this.createME("menuitem","USL-skripty","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'UserScriptLoader');","uProfMenu_folder"),0);
            break;
          case 3:
            menupopup.appendChild(this.createME("menuitem","Skripty Scriptish","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'scriptish_scripts');","uProfMenu_folder"),0);
            break;
        }
        if (this.cssOrdner) {
          menupopup.appendChild(this.createME("menuitem","CSS-Ordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'CSS');","uProfMenu_folder"),0);
        }
        menupopup.appendChild(this.createME("menuitem","Chromeordner","uProfMenu.prefDirOpen('UChrm');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Profilordner","uProfMenu.prefDirOpen('ProfD');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Addonordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'extensions');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Installationsordner","uProfMenu.prefDirOpen('CurProcD');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Startup-Cacheordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfLD')+uProfMenu.getDirSep()+'startupCache');","uProfMenu_folder"),0);
        // Ende Einbindung von Ordnern
        // Einbindung von abouts
        if (this.abouts.length>0) {
          menupopup.appendChild(document.createXULElement('menuseparator'));
          // falls der erste Eintrag des arrays ='0' ist, dann kein Untermenue anlegen, sondern direkt als Menuepunkte einbinden
          if (this.abouts[0]=='0') {
            for (var i = 1; i < this.abouts.length; i++) {
            menupopup.appendChild(this.createME("menuitem",this.abouts[i],"openTrustedLinkIn('"+this.abouts[i]+"','tab')","uProfMenu_about"),0);
            }
           } else {
            // der erste Eintrag des arrays ist ungleich '0', deshalb als Untermenue einrichten
            var submenu=menupopup.appendChild(this.createME("menu","uc.js",0,0,"submenu-about"));
            var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-about-items"));
            this.fillMenu("submenu-about","submenu-about-items", "about:",this.abouts,"uProfMenu_about",1);
          }
        }
        // Ende Einbindung von abouts
        // Separator, falls dieser nicht schon durch abouts generiert wurde und weitere Menuepunkte folgen werden
        if (this.abouts.length==0 && (this.showNormalPrefs || typeof(ToolRstartMod) != "undefined")) menupopup.appendChild(document.createXULElement('menuseparator'));
        // Falls gewuenscht (s. Konfigurationsabschnitt), Zugriff auf die normalen Einstellungen
        if (this.showNormalPrefs) menupopup.appendChild(this.createME("menuitem","Einstellungen","try{openOptionsDialog();}catch(e){openPreferences();}","uProfMenu_prefs"),0);
        // Falls addRestartButton installiert ist, Neustart zur Verfuegung stellen (addRestartButton 1.0.20120105mod erforderlich)
        if(typeof(ToolRstartMod) != "undefined" || this.enableRestart) menupopup.appendChild(this.createME("menuitem","Neustart",
        "try{ToolRstartMod.restartApp(false);} catch(e){alert(e);}","uProfMenu_restart"),0);
      },
    
      getDirSep:function() {
        // Betriebssystem nach https://developer.mozilla.org/en/Code_snippets/Miscellaneous ermitteln
        var osString = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).OS;
        var dirsep="/";
        switch(osString) {
          case "WINNT":
            dirsep="\\";
            break;
          case "Linux":
            dirsep="/";
            break;
          case "Darwin":
            dirsep="/";
            break;
        }
        return dirsep;
      },
    
      edit:function(OpenMode,Filename){
        var Path = "";
        var dSep = this.getDirSep();  // die Trennzeichen zwischen Ordnern abhaengig vom Betriebssystem machen
        switch (OpenMode){
          //Current is Chrome Directory
          case 0:
            var Path = this.getPrefDirectoryPath("UChrm") + dSep + Filename;
            break;
          //Current is Profile Directory
          case 1:
            var Path = this.getPrefDirectoryPath("ProfD") + dSep + Filename;
            break;
          //Current is Root
          case 2:
            var Path = Filename;
            break;
        }
        this.launch(this.TextOpenExe,Path);
      },
    
      dirOpen:function(Path){
        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=[Path];
          file.initWithPath(this.vFileManager);
          process.init(file);
          // Verzeichnis mit anderem Dateimanager oeffnen
          process.run(false, args, args.length);
         } else {
          // Verzeichnis mit Dateimanager des Systems oeffnen
          var dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          dir.initWithPath(Path);
          dir.launch();
        }
      },
    
      prefDirOpen:function(prefDir){
        Path = this.getPrefDirectoryPath(prefDir);
        this.dirOpen(Path);
      },
    
      getPrefDirectoryPath:function(str){
        // get profile directory
        var file = Components.classes["@mozilla.org/file/directory_service;1"]
          .getService(Components.interfaces.nsIProperties)
          .get(str, Components.interfaces.nsIFile);
        if (str == 'CurProcD') {
          file = file.parent;
        };
        return file.path;
      },
    
      launch:function(RanPath,OpenPath){
        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile);
        var proc = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
        var args = [OpenPath];
        file.initWithPath(RanPath);
        // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
        if (!file.exists()) {
          var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
          RanPath=pref.getCharPref("view_source.editor.path");
          file.initWithPath(RanPath);
        }
        proc.init(file);
        proc.run(false, args, args.length);
      },
    
      stringComparison:function(a, b){
        a = a.toLowerCase();
        a = a.replace(/ä/g,"a");
        a = a.replace(/ö/g,"o");
        a = a.replace(/ü/g,"u");
        a = a.replace(/ß/g,"s");
        b = b.toLowerCase();
        b = b.replace(/ä/g,"a");
        b = b.replace(/ö/g,"o");
        b = b.replace(/ü/g,"u");
        b = b.replace(/ß/g,"s");
        return(a==b)?0:(a>b)?1:-1;
      },
    
      getScripts:function(iType) {
        // Arrays (jeweils ein Array fuer uc.js und uc.xul) nehmen Namen der gefundenen Skripte auf
        let ucJsScripts = [];
        let ucXulScripts = [];
        // Suchmuster, also die Dateierweiterungen uc.js und uc.xul
        let extjs = /\.uc\.js$/i;
        let extxul= /\.uc\.xul$/i;
        let aFolder = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
        aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path);
        // files mit Eintraegen im Chrome-Ordner befuellen
        let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
        // Ordner bzw. files durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
        while (files.hasMoreElements()) {
          let file = files.getNext().QueryInterface(Ci.nsIFile);
          // keine gewuenschte Datei, deshalb continue
          if (!extjs.test(file.leafName) && !extxul.test(file.leafName)) continue;
          // uc.js gefunden -> im Array ablegen
          if (extjs.test(file.leafName)) ucJsScripts.push(file.leafName);
          // uc.xul gefunden -> im Array ablegen
          if (extxul.test(file.leafName)) ucXulScripts.push(file.leafName);
        }
        if (this.sortScripts) {
          ucJsScripts.sort(this.stringComparison);
          ucXulScripts.sort(this.stringComparison);
        }
        // Aufruf der naechsten Methoden um die beiden Untermenues oder die Zwischenablage zu befuellen
        if (iType==0) {
          this.fillMenu("submenu-ucjs","submenu-ucjs-items", "uc.js",ucJsScripts,"uProfMenu_ucjs",0);
          //this.fillMenu("submenu-ucxul","submenu-ucxul-items", "uc.xul",ucXulScripts,"uProfMenu_ucxul",0);
         } else {
          var result=this.fillClipboardValue(ucJsScripts,ucXulScripts);
          Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper).copyString(result);
        }
      },
    
      fillMenu:function(whichsubmenu, whichsubmenuitems, strlabel, scriptArray,sClass,sTyp) {
        // Beschriftung des Untermenues mit Anzahl der gefundenen Dateien ergaenzen
        var e = document.getElementById(whichsubmenu);
        e.setAttribute('label',strlabel + ' (' + scriptArray.length + ')');
        var popup = document.getElementById(whichsubmenuitems);
        // zunaechst Untermenue zuruecksetzen
        while(popup.hasChildNodes()){
          popup.removeChild(popup.firstChild);
        }
        // Untermenue endlich befuellen
        for (var i = scriptArray.length-1; i > -1; i--) {
          // bisher nur eine Typunterscheidung (userChromeJS-Skript oder about:)
          if (sTyp==0){
            var mitem = this.createME("menuitem",scriptArray[i],"uProfMenu.edit(0,'"+scriptArray[i]+"')",sClass,0);
            mitem.setAttribute("onclick","uProfMenu.openAtGithub(event,'"+scriptArray[i]+"')");
            mitem.setAttribute("tooltiptext"," Linksklick: Bearbeiten,\n Mittelklick: https://github.com/.../"+this.cleanFileName(scriptArray[i])+" oeffnen,\n Rechtsklick: Suche auf GitHub");
           } else {
            var mitem = this.createME("menuitem",scriptArray[i],"openTrustedLinkIn('"+scriptArray[i]+"','tab')",sClass,0);
          }
          popup.insertBefore(mitem, popup.firstChild);
        }
      },
    
      fillClipboardValue:function(sArray,xArray) {
        var retValue;
        var s = 0;
        var x = 0;
        s = sArray.length;
        x = xArray.length;
        switch(this.enableScriptsToClip) {
          case 1:
            retValue = "userChromeJS/uc.js ("+s+"):\n------------------------\n"+sArray.join("\n")+
                       "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------\n"+xArray.join("\n");
            break;
          default:
            retValue = "userChromeJS/uc.js ("+s+"):\n------------------------";
            for (var i = 0; i < s ; i++) {
              j = i + 1;
              retValue = retValue + "\n" + j + ". " + sArray[i];
            }
            retValue = retValue + "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------";
            if (this.enableScriptsToClip==2) s = 0;
            for (var i = 0; i < x ; i++) {
              j = i + s + 1;
              retValue = retValue + "\n" + j + ". " + xArray[i];
            }
            break;
        }
        return retValue;
      },
    
      createME:function(sTyp,sLabel,sCommand,sClass,sId) {
        // Anlegen von menuitem, menu oder menupop - fuer bestimmte Typen nicht eingesetzte Parameter werden als 0 uebergeben
        const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
        var m = document.createElementNS(XUL_NS, sTyp);
        switch (sTyp) {
          case "menuitem":
            // this.createME("menuitem","Label des Items","ZuzuweisenderCodeFueroncommand","GewuenschteKlasseDesItems",0)
            m.setAttribute('label', sLabel);
            m.setAttribute('oncommand',sCommand);
            m.setAttribute('class',sClass);
            break;
          case "menu":
            // this.createME("menu","Label des Menues",0,0,"GewuenschteIdDesMenues")
            m.setAttribute('label', sLabel);
            m.setAttribute('id', sId);
            break;
          case "menupopup":
            //this.createME("menupopup",0,0,0,"GewuenschteIdDesMenupopups");
            m.setAttribute('id', sId);
            break;
        }
        return m;
      },
    
      openAtGithub:function(e,sScript) {
        if (e.button==1){
          // Mittelklick - Seite auf GitHub oeffnen (funktioniert nur, wenn Ordner- und bereinigter Dateiname [ohne Erweiterung] uebereinstimmen):
          var sUrl="https://github.com/ardiman/userChrome.js/tree/master/"+this.cleanFileName(sScript);
          openWebLinkIn(sUrl, 'tab');
        }
        if (e.button==2){
          // Rechtsklick - Suche auf GitHub starten (funktioniert nur, wenn der Dateiname im Code hinterlegt ist):
          e.preventDefault();
          var sUrl="https://github.com/search?langOverride=&language=&q="+sScript+"&repo=&start_value=1&type=Code";
          openWebLinkIn(sUrl, 'tab');
        }
      },
    
      cleanFileName:function(sName) {
        sName=sName.toLowerCase();
        /* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen:
        /Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/
        / "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen
        */
        var regs=[/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/];
        for (var i = 0; i < regs.length; i++) {
          sName=sName.replace(regs[i],"");
        }
        return sName;
      }
    };
    
    uProfMenu.init();
    Alles anzeigen
  • Extra Config Menü Icon überall verschiebbar machen?

    • FuchsFan
    • 28. Dezember 2021 um 17:54

    2002Andreas

    Nun habe ich in das Script mal den originalen Base64-Code für das Icon eingetragen, weiter keine Änderungen gemacht. Der Button kann überall hin verschoben werden, Icon bleibt erhalten, und Popup arbeitet auch.

    Endor hat es hier RE: Extra Config Menü Icon überall verschiebbar machen? ja auch bestätigt.

  • Extra Config Menü Icon überall verschiebbar machen?

    • FuchsFan
    • 28. Dezember 2021 um 17:09
    Zitat von 2002Andreas

    Du hast den Pfad dazu im Script für dich angepasst?

    Nein, das habe ich nicht gemacht, weil ich es nicht wusste. :/

  • Extra Config Menü Icon überall verschiebbar machen?

    • FuchsFan
    • 28. Dezember 2021 um 17:07
    Zitat von 2002Andreas

    Aber nur wenn es in einer Zusatzleiste ist.

    Nur mal zum Test installiert, Button ist da, aber Icon fehlt überall.

  • Anpassung für About-Dialog funktioniert nicht mehr

    • FuchsFan
    • 28. Dezember 2021 um 11:15
    Zitat von 2002Andreas

    Naja...der Code passt schon:

    Moin, Andreas! :)

    Ja, natürlich passt der, deswegen schrieb ich ja auch, dass er das Script im Einsatz hat. Damit sieht es dann aber so aus, wie auf dem Bild gezeigt.

    Hier das Script:

    Code
    // ==UserScript==
    // @name addBuildIdToAboutDialogueBox.uc.js
    // @namespace http://space.geocities.yahoo.co.jp/gl/alice0775
    // @description
    // @include chrome://browser/content/aboutDialog.xhtml
    // @compatibility Firefox 3.0 3.1 69.*
    // @author Alice0775
    // @version 2019/05/29 22.00 Anpassung von milupo - Reparatur der mehrzeiligen Darstellung
    // @version 2013/02/11 23:00 Bug 755724
    // @version 2008/11/22 12:00
    // @Note Unter Firefox Hilfe - Über Firefox Textfeld mit BuilsID hinzufügen
    // @Note und automatisches Kopieren in die Zwischenablage der BuilsID.
    // ==/UserScript==
    var addBuildid = {
    buildid: function (){
    return navigator.buildID;
    },
    
    
    addBuildid: function () {
    var ua = this.convUA() + " ID:" + this.buildid();
    
    
    var userAgentField = document.getElementById("userAgent");
    if (!userAgentField) {
    userAgentField = document.getElementById("rightBox");
    var label = document.createElementNS("http://www.w3.org/1999/xhtml", 'textarea');
    userAgentField = userAgentField.appendChild(label);
    userAgentField.setAttribute("id", "agent");
    userAgentField.setAttribute("value", navigator.userAgent);
    userAgentField.setAttribute("multiline", true);
    userAgentField.setAttribute("rows", "5");
    }
    userAgentField.value = this.getBuildSource() + "\n" + ua;
    userAgentField.setAttribute("value", this.getBuildSource() + "\n" + ua);
    window.resizeBy(0, 100);
    },
    
    
    convUA: function(){
    var pref = Components.classes['@mozilla.org/preferences-service;1']
    .getService(Components.interfaces.nsIPrefBranch);
    const kUA = "general.useragent.extra.firefox";
    const kUA2 = "general.useragent.override";
    var oldId = "";
    if (pref.prefHasUserValue(kUA)){
    oldId = pref.getCharPref(kUA);
    pref.clearUserPref(kUA);
    }
    var oldId2 = "";
    if (pref.prefHasUserValue(kUA2)){
    oldId2 = pref.getCharPref(kUA2);
    pref.clearUserPref(kUA2);
    }
    ua = navigator.userAgent;
    if (!!oldId)
    pref.setCharPref(kUA, oldId);
    if (!!oldId2)
    pref.setCharPref(kUA2, oldId2);
    return ua;
    },
    
    
    copyUA: function (){
    var userAgentField = document.getElementById("userAgent");
    if (!userAgentField)
    userAgentField = document.getElementById("agent");
    Components.classes["@mozilla.org/widget/clipboardhelper;1"]
    .getService(Components.interfaces.nsIClipboardHelper).copyString(userAgentField.value);
    },
    
    
    getBuildSource: function (){
    const Cc = Components.classes;
    const Ci = Components.interfaces;
    const ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
    const fph = ios.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler);
    const ds = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties);
    var file = ds.get("CurWorkD", Ci.nsIFile);
    var file = ds.get("CurProcD", Ci.nsIFile);
    if (/browser$/.test(file.path)) {
    var path = file.path.replace(/browser$/,"");
    file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
    file.initWithPath(path);
    }
    file.append("application.ini");
    var text = this.readFile(file);
    try {
    var SourceRepository = text.match(/SourceRepository=(.*)/)[1];
    var SourceStamp = text.match(/SourceStamp=(.*)/)[1];
    //alert(SourceRepository + "/rev/" + SourceStamp);
    return SourceRepository + "/rev/" + SourceStamp;
    } catch (ex) {
    return ""
    }
    },
    
    
    readFile: function (aFile){
    var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].
    createInstance(Components.interfaces.nsIFileInputStream);
    stream.init(aFile, 0x01, 0, 0);
    var cvstream = Components.classes["@mozilla.org/intl/converter-input-stream;1"].
    createInstance(Components.interfaces.nsIConverterInputStream);
    cvstream.init(stream, "UTF-8", 1024,
    Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
    var content = "", data = {};
    while (cvstream.readString(4096, data)) {
    content += data.value;
    }
    cvstream.close();
    return content.replace(/\r\n?/g, "\n");
    }
    }
    
    
    addBuildid.addBuildid();
    addBuildid.copyUA();
    setTimeout(function(){window.resizeBy(0, 0);},0);
    Alles anzeigen
  • Anpassung für About-Dialog funktioniert nicht mehr

    • FuchsFan
    • 28. Dezember 2021 um 10:28
    Zitat von .DeJaVu

    Einfach mehr Struktur reingeben.

    Prima, dass du dir die Mühe gemacht hast, um Ordnung rein zu bringen. Das würde ihn aber in diesem Fall wieder nicht weiter bringen, weil er für die Anzeige der Text-Box ein Script verwendet. Dein Code in Verbindung mit dem Script ergibt dieses Resultat:

  • Anpassung für About-Dialog funktioniert nicht mehr

    • FuchsFan
    • 27. Dezember 2021 um 16:49
    Zitat von 2002Andreas

    Was soll der Eintrag window in Zeile 93?

    Zeile 93 bis 103 sind völlig überflüssig, habe das gerade ausprobiert. Er müsste zu meinem vorgeschlagenen Code-Schnipsel nur noch color für die Schriftfarbe hinzufügen, und dann ist es gut so. Es sei denn, da werkelt wieder was dazwischen.

  • Anpassung für About-Dialog funktioniert nicht mehr

    • FuchsFan
    • 27. Dezember 2021 um 16:30
    Zitat von Boersenfeger

    Allerdings ist dieser Teil nun mit schwarzem Hintergrund, sonst war es weiß, siehe oben..

    Das stimmt, dann füge dem Code mal das hinzu. Farbe bitte anpassen.

    CSS
    #rightBox textarea{
    background-color: yellow !important;
    }
  • Anpassung für About-Dialog funktioniert nicht mehr

    • FuchsFan
    • 27. Dezember 2021 um 16:03
    Zitat von Boersenfeger

    Sollte eigentlich ungefähr so aussehen, hier die Default-Version:

    Auch nach dem jetzigen Update keine Probleme hier, liegt also an deinem Code.

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 19:28
    Zitat von Sören Hentzschel

    Ja, sein Code blendet alle Reiter ein, also auch die, die nicht zu sehen sein sollten.

    Danke, Sören, wieder Klarheit geschaffen. :thumbup: :)

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 19:23
    Zitat von harff182

    Layout und Farbzusammenstellung etc sagen mir sehr zu

    Danke! :saint:

    Zitat von harff182

    Magst du kundtun, von welcher Breite Du ausgegeangen bist bei den ganzen Werten?

    Von Zeile 111 bis 187 sind hauptsächlich die Maße für die rechte Seite eingetragen.

    Beginne mal mit dem Wert in Zeile 117 , dann wirst du erkennen, was noch geändert werden muss.

    Es sind dann noch folgende Zeilen anzupassen und untereinander abzustimmen:

    242, 252, 402, 416, 431 und 446.

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 19:18
    Zitat von Sören Hentzschel

    das an deinen Anpassungen, die etwas sichtbar machen, was für dich nicht sichtbar sein sollte.

    Dann aber unbewusst, denn ich habe diesbezüglich keine Änderungen gemacht. Es wird doch nicht mit dem Code von Dharkness zu tun haben, von dem ich ja auch sehr viel bei mir verbastelt habe. Denn bei seinem Code ist der Eintrag ja auch dort.

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 17:10
    Zitat von milupo

    Dann ist sie vielleicht schon durch.

    Das mag sein, denn der Eintrag in about:config steht bei mir auf true, ohne dass ich dort etwas geändert hätte.

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 16:59
    Zitat von milupo

    Man muss die Erweiterung von hier herunterladen

    Nö, habe ich nicht getan, und ist auch nicht installiert. :/

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 16:51
    Zitat von 2002Andreas

    Hier in 2 Profilen vom Nightly nicht.

    Gerade Update in anderem Nightly gemacht, auch dort vorhanden. Code ist noch nicht angepasst.

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 16:47
    Zitat von 2002Andreas

    Hier zumindest noch nicht vorhanden

    Schau mal dort, ist auch da vorhanden.

    Beitrag

    RE: Addons Manager Code anpassen

    […]

    So ↓ sieht übrigens mein Addons-Manager aus.

    Dharkness
    25. Dezember 2021 um 19:49
  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 16:42
    Zitat von grisu2099

    Ich steh mal wieder aufm Schlauch - welche Änderung meinst du?

    Neu ist Site Permissions.

  • Addons Manager Code anpassen

    • FuchsFan
    • 26. Dezember 2021 um 16:26
    Zitat von grisu2099

    Sollte sich da nicht sowieso was am Design der Seite ändern

    Eine Änderung ist schon da im Nightly .

Unterstütze uns!

Jährlich (2026)

35,3 %

35,3% (273,24 von 775 EUR)

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