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

Beiträge von Dharkness

  • Video läuft auf Webseite nicht

    • Dharkness
    • 17. Mai 2025 um 18:49
    Zitat von 2002Andreas

    Und da steht dann auch: Video speichern

    Genau.

  • Video läuft auf Webseite nicht

    • Dharkness
    • 17. Mai 2025 um 18:46
    Zitat von Gebby

    Lädt man das Video herunter, läuft es überall, W10, Linux. Nur im Firefox (bei mir einziger Browser) nicht.

    Andere Videos laufen auch nicht, aber z.B. Elster frisst Maus oder auch Star auf der Essensuche, die sind aber auch zusätzlich mit <video type="video/ogg" src="elster.ogg" width="426" height="240" poster="../pics/elster_frisst.jpg" controls /> eingebunden, teste es halt so auch mal bei der Amselfütterung.

  • gespeicherten Passwörter

    • Dharkness
    • 17. Mai 2025 um 11:56
    Zitat von Quichotte

    Ist es möglich im Firefox-Ordner ein Passwort für mein E-Mail-Programm

    Du hast es in dem Mail-Programm aktualisiert?

    Zitat von Quichotte

    wiederherzustellen bzw. wiederzufinden?

    Wenn es in Firefox für den Zugriff über die Website verwendet wird und noch nicht aktualisiert, solltest Du es im Fx eigenen Passwort-Manager, wenn es denn dort gespeichert ist, auslesen können.

    In der linken Spalte den Mail-Anbieter heraussuchen und dann rechts das Passwort anzeigen lassen, das Auge bei Passwort und wenn es das richtige Passwort ist auf Kopieren klicken und für Dein E-Mail-Programm verwenden.

  • Buttons funktionieren nur im/ für das erste Fenster

    • Dharkness
    • 13. Mai 2025 um 11:42
    Zitat von 2002Andreas

    Ich kann keinen erkennen :/

    Ich schon, siehe oben, aber den konntest Du natürlich nicht erkennen, aber danke fürs drüber schauen. :thumbup:

  • Buttons funktionieren nur im/ für das erste Fenster

    • Dharkness
    • 13. Mai 2025 um 11:35
    Zitat von 2002Andreas

    Mit eigenem Pfad und Icon sieht das hier so aus:

    Mittlerweile ist der Button da, aber ohne Icon, siehst Du da ↓ einen Fehler?

    JavaScript
    // Button_Verzeichnisse.uc.js
    // Linksklick öffnet Profilordner
    // Mittelklick öffnet Installationsordner
    // Rechtsklick öffnet Ordner chrome
    
    (function() {
        if (!window.gBrowser)
            return;
    
        try {
            CustomizableUI.createWidget({
                id: 'buttonOrdner',
                type: 'custom',
                defaultArea: CustomizableUI.AREAS,
                onBuild: function(aDocument) {
                    var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                    var props = {
                        id: 'buttonOrdner',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        removable: true,
                        // Name im AnpassungFenster
                        label: 'Ordner aufrufen',
                        // Name bei MausHover wenn in Symbolleiste
                        tooltiptext: 'Links Profilordner / Mitte Installationsordner / Rechts Ordner chrome',
                        // style: 'list-style-image: url("file:///C:/FoxIcons2/ordner2.png")',
                        style: 'list-style-image: url("file:///H:/Profile/Firefox/Fx57-H-Default/chrome/red-circle-icon.png")',
                };
                for (var p in props)
                toolbaritem.setAttribute(p, props[p]);
    
                return toolbaritem;
    
                }
            });
        } catch(e) { };
    
        document.getElementById('buttonOrdner').addEventListener('click', event => {
            if (event.button == 0) {
                uProfMenu.prefDirOpen('ProfD');
            }
            if (event.button == 1) {
                uProfMenu.prefDirOpen('CurProcD');
            }
            if (event.button == 2) {
                Services.dirsvc.get("UChrm", Ci.nsIFile).launch();
            }
        });
    })();
    Alles anzeigen

    Grml, was so ein kleiner dummer Fehler, es fehlt icons/ im Pfad, so anrichten kann. =O

  • Buttons funktionieren nur im/ für das erste Fenster

    • Dharkness
    • 13. Mai 2025 um 11:16
    Zitat von FuchsFan

    Hier habe ich eines der Scripte, dass ich mir angepasst habe. Die Icon-Lösung habe ich neu eingefügt, weil sie hier in einem zentralen Verzeichnis (auf C:) hinterlegt sind. Teste es bitte mal, ob es nun deinen Vorstellungen entspricht. Fehler werden auch nicht angezeigt.

    Hm, hier wird leider kein Button erzeugt, es wird auch nichts in der Konsole angezeigt. ;(

  • about:about Button

    • Dharkness
    • 12. Mai 2025 um 16:32
    Zitat von Mira_Belle

    Nur ein Versuch :!:
    Die Datei heißt ja irgendwas mit V, nehme ich an.
    Setze doch einfach mal 0-"Skriptname" davor und teste dann noch mal.

    Der Versuch hat schon zum Ziel geführt, Dankeschön, nun kann ich die andern Buttons auch noch einmal testen. :):thumbup:

  • about:about Button

    • Dharkness
    • 12. Mai 2025 um 16:01
    Zitat von Mira_Belle

    Natürlich nicht!

    So weit so gut, mit welchem Script für eine vertikale Toolbar läuft das Script, mit dem ↓ läuft es hier nicht? ;(

    JavaScript
    // 'Vertical Add-on Bar' script for Firefox by Aris
    //
    // no 'close' button
    // 'toggle' toolbar with 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS
    // optional toggle button hides the toolbar temporarily, it gets restored on every restart
    // 'Vertical Add-on Bar' entry is only visible in toolbars context menu when in customizing mode
    //
    // flexible spaces on toolbar work 'vertically'
    // toolbar can be on the left or on the right
    // toolbar is display horizontally in customizing mode
    
    // [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts)
    
    // Components.utils.import("resource:///modules/CustomizableUI.jsm");
    ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
    
    
    var AddonbarVertical = {
      init: function() {
    
        if (location != 'chrome://browser/content/browser.xhtml')
          return;
    
        /* blank tab workaround */
        try {
          if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank');
        } catch(e) {}
    
        var addonbar_v_label = 'Vertical Add-on Bar'; // toolbar name
        var button_label = 'Toggle vertical Add-on Bar'; // Toggle button name
        var addonbar_v_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
        var addonbar_v_on_the_left = false; // display vertical toolbar on the left (true) or the right (false)
        var style_addonbar_v = true; // apply default toolbar appearance/colors to vertical add-on bar
        var addonbar_v_width = '22px'; // toolbar width
        var compact_buttons = true; // compact button size (true) or default button size (false)
    
        try {
         if(document.getElementById('toolbox_abv') == null && document.getElementById('addonbar_v') == null) {
          var toolbox_abv = document.createXULElement('toolbox');
          toolbox_abv.setAttribute('orient','horizontal');
          toolbox_abv.setAttribute('id','toolbox_abv');
          toolbox_abv.setAttribute('insertbefore','sidebar-box');
    
          var tb_addonbarv = document.createXULElement('toolbar');
          tb_addonbarv.setAttribute('id','addonbar_v');
          tb_addonbarv.setAttribute('customizable','true');
          tb_addonbarv.setAttribute('class','toolbar-primary chromeclass-toolbar browser-toolbar customization-target');
          tb_addonbarv.setAttribute('mode','icons');
          tb_addonbarv.setAttribute('iconsize','small');
          tb_addonbarv.setAttribute('toolboxid','navigator-toolbox');
          tb_addonbarv.setAttribute('orient','vertical');
          tb_addonbarv.setAttribute('flex','1');
          tb_addonbarv.setAttribute('context','toolbar-context-menu');
          tb_addonbarv.setAttribute('toolbarname', addonbar_v_label);
          tb_addonbarv.setAttribute('label', addonbar_v_label);
          tb_addonbarv.setAttribute('lockiconsize','true');
          tb_addonbarv.setAttribute('defaultset','spring');
    
          toolbox_abv.appendChild(tb_addonbarv);
    
          CustomizableUI.registerArea('addonbar_v', {legacy: true});
    
          setTimeout(function(){
            CustomizableUI.registerArea('addonbar_v', {legacy: true});
          },2000);
    
          CustomizableUI.registerToolbarNode(tb_addonbarv);
    
          if(addonbar_v_on_the_left) {
            document.getElementById('browser').insertBefore(toolbox_abv,document.getElementById('browser').firstChild);
          }
          else {
            document.getElementById('browser').appendChild(toolbox_abv);
          }
    
            var observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
              try {
                if(document.querySelector('#browser').getAttribute('hidden') || document.querySelector('#main-window').getAttribute('customizing')) {
                  document.querySelector('#addonbar_v').setAttribute('orient','horizontal');
                  document.querySelector('#navigator-toolbox').appendChild(document.querySelector('#addonbar_v'));
                }
                else  {
                  document.querySelector('#addonbar_v').setAttribute('orient','vertical');
                  document.querySelector('#toolbox_abv').appendChild(document.querySelector('#addonbar_v'));
    
                }
              } catch(e){}
            });
          });
    
          observer.observe(document.querySelector('#main-window'), { attributes: true, attributeFilter: ['customizing'] });
    
          try {
            Services.prefs.getDefaultBranch('browser.vaddonbar.').setBoolPref('enabled',true);
            setToolbarVisibility(document.getElementById('addonbar_v'), Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'));
            setToolbarVisibility(document.getElementById('toolbox_abv'), Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'));
          } catch(e) {}
    
          if(addonbar_v_togglebutton) {
    
            CustomizableUI.createWidget({
                id: 'togglebutton_addonbar_v', // button id
                defaultArea: CustomizableUI.AREA_NAVBAR,
                removable: true,
                label: button_label, // button title
                tooltiptext: button_label, // tooltip title
                onClick: function(event) {
                  if(event.button==0) {
                    var windows = Services.wm.getEnumerator(null);
                    while (windows.hasMoreElements()) {
                      var win = windows.getNext();
    
                      var vAddonBar = win.document.getElementById('addonbar_v');
                      setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
    
                      var vAddonBarBox = win.document.getElementById('toolbox_abv');
                      setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
    
                      Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
    
                      if(!vAddonBar.collapsed)
                        win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
                      else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
                    }
                  }
                },
                onCreated: function(button) {
                  if(Services.prefs.getBranch('browser.vaddonbar.').getBoolPref('enabled'))
                    button.setAttribute('checked','true');
                  return button;
                }
    
            });
          }
    
          // Press 'Ctr + Alt + /' on Windows/Linux and 'Cmd + Alt + /' on macOS to toggle vertical add-on bar
          var key = document.createXULElement('key');
          key.id = 'key_toggleVAddonBar';
          key.setAttribute('key', '/');
          key.setAttribute('modifiers', 'accel,alt');
          key.addEventListener('command', () => {
          var windows = Services.wm.getEnumerator(null);
            while (windows.hasMoreElements()) {
              var win = windows.getNext();
              var vAddonBar = win.document.getElementById('addonbar_v');
              setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
              var vAddonBarBox = win.document.getElementById('toolbox_abv');
              setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
              Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
              if(!vAddonBar.collapsed)
                win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
                else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
              }
            });
          // key.setAttribute('oncommand',`
           //  var windows = Services.wm.getEnumerator(null);
            // while (windows.hasMoreElements()) {
              // var win = windows.getNext();
              // var vAddonBar = win.document.getElementById('addonbar_v');
              // setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
              // var vAddonBarBox = win.document.getElementById('toolbox_abv');
              // setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
              // Services.prefs.getBranch('browser.vaddonbar.').setBoolPref('enabled',!vAddonBar.collapsed);
              // if(!vAddonBar.collapsed)
                // win.document.querySelector('#togglebutton_addonbar_v').setAttribute('checked','true');
              // else win.document.querySelector('#togglebutton_addonbar_v').removeAttribute('checked');
            // }
          // `);
          document.getElementById('mainKeyset').appendChild(key);
    
         }
        } catch(e) {}
    
        // style toolbar & toggle button
        var addonbar_v_style = '';
        var togglebutton_addonbar_v_style = '';
    
        if(style_addonbar_v) {
          var end_border =`
            #addonbar_v { \
                border-inline-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
            } \
          `;
    
          if(!addonbar_v_on_the_left) {
            end_border =`
              #addonbar_v { \
                border-inline-start: 1px solid #B2B2B2 !important; \
              } \
            `;
          }
    
          addonbar_v_style =` \
            #addonbar_v { \
              appearance: none !important; \
              background-color: var(--toolbar-bgcolor); \
              background-image: var(--toolbar-bgimage); \
              background-clip: padding-box; \
              color: var(--toolbar-color, inherit); \
              padding-bottom: 1px !important; \
            } \
            :root[lwtheme] #addonbar_v { \
              background: var(--lwt-accent-color) !important; \
            } \
            :root[lwtheme][lwtheme-image='true'] #addonbar_v { \
              background: var(--lwt-header-image) !important; \
              background-position: 0vw 50vh !important; \
            } \
            #main-window:not([customizing]) #toolbox_abv:not([collapsed='true']), \
            #main-window:not([customizing]) #addonbar_v:not([collapsed='true']) { \
              min-width: `+addonbar_v_width+`; \
              width: `+addonbar_v_width+`; \
              max-width: `+addonbar_v_width+`; \
            } \
            #main-window[chromehidden='menubar toolbar location directories status extrachrome '] #toolbox_abv:not([collapsed='true']), \
            #main-window[chromehidden='menubar toolbar location directories status extrachrome '] #addonbar_v:not([collapsed='true']), \
            #main-window[sizemode='fullscreen'] #toolbox_abv:not([collapsed='true']), \
            #main-window[sizemode='fullscreen'] #addonbar_v:not([collapsed='true']) { \
              min-width: 0px; \
              width: 0px; \
              max-width: 0px; \
            } \
            #main-window[customizing] #addonbar_v { \
              outline: 1px dashed !important; \
              outline-offset: -2px !important; \
            } \
            #addonbar_v toolbarbutton { \
              min-height: 20px !important; \
              max-height: 20px !important; \
              min-width: 20px !important; \
              max-width: 20px !important; \
              background-color: #474747 !important; \
              margin: 1px 1px 0 1px !important; \
            } \
            #addonbar_v toolbar .toolbarbutton-1 { \
              min-height: 22px !important; \
              max-height: 22px !important; \
              min-width: 22px !important; \
              max-width: 22px !important; \
              background-color: #474747 !important; \
              margin: 1px 1px 0 1px !important; \
            } \
            #addonbar_v toolbarbutton:hover, \
            #addonbar_v toolbar .toolbarbutton-1:hover { \
              background-color: #D1E2F2 !important; \
              color: #000 !important; \
              fill: #000 !important; \
            } \
            #addonbar_v toolbarbutton#uc-restart { \
              background-color: #F20 !important; \
            } \
            #addonbar_v toolbarbutton#uc-restart image { \
              fill: #FFF !important; \
            } \
            #addonbar_v toolbarbutton#uc-restart:hover { \
              background-color: #D1E2F2 !important; \
            } \
            #addonbar_v toolbarbutton#uc-restart:hover image { \
              fill: #F20 !important; \
            } \
            #addonbar_v toolbarbutton#privatebrowsing-button { \
              background-color: #8000D7 !important; \
            } \
            #addonbar_v toolbarbutton#privatebrowsing-button image { \
              fill: #FFF !important; \
            } \
            #addonbar_v toolbarbutton#privatebrowsing-button:hover { \
              background-color: #D1E2F2 !important; \
            } \
            #addonbar_v toolbarbutton#privatebrowsing-button:hover image { \
              fill: #8000D7 !important; \
            } \
            #addonbar_v toolbarbutton#restart-button { \
              background-color: #F20 !important; \
            } \
            #addonbar_v toolbarbutton#restart-button:hover { \
              background-color: #D1E2F2 !important; \
            } \
            #addonbar_v #cookieautodelete_kennydo_com-browser-action { \
              min-height: 33px !important; \
            } \
            #addonbar_v #cookieautodelete_kennydo_com-browser-action > .toolbarbutton-badge-stack { \
              margin-top: -13px !important; \
            } \
            #addonbar_v #cookieautodelete_kennydo_com-browser-action > .toolbarbutton-badge-stack .toolbarbutton-badge { \
              min-width: 18px !important; \
              border-radius: 0px !important; \
              margin-top: 20px !important; \
              margin-right: 1px !important; \
            } \
            #addonbar_v #cookieautodelete_kennydo_com-browser-action:hover > .toolbarbutton-badge-stack .toolbarbutton-badge { \
              background-color: #D1E2F2 !important; \
              color: #000 !important; \
            } \
            #addonbar_v > toolbarbutton#restart-button .toolbarbutton-icon { \
              margin: 3px !important; \
            } \
            #addonbar_v > toolbarbutton#print-toolbarbutton { \
              border-radius: 0 !important; \
              border: 0 !important; \
              background-color: #474747 !important; \
            } \
            #addonbar_v > toolbarbutton#print-toolbarbutton:hover { \
              background-color: #D1E2F2 !important; \
            } \
            #unified-extensions-button[hidden]{ \
                visibility: visible !important; \
                display: flex !important; \
            } \
            #addonbar_v toolbaritem separator { \
                display: none !important; \
            } \
            #main-window:not([customizing]) #addonbar_v > toolbaritem { \
              writing-mode: vertical-rl !important; \
              text-orientation: mixed !important; \
              transform: rotate(0deg) !important; \
            } \
            #main-window:not([customizing]) #addonbar_v > toolbaritem menupopup { \
              max-height: 170px !important; \
              max-width: 170px !important; \
              transform: rotate(-90deg) !important; \
            } \
            #main-window:not([customizing]) #addonbar_v > toolbaritem .toolbarbutton-badge { \
              transform: rotate(-90deg) !important; \
              position: absolute !important; \
              padding: 1px 2px !important; \
              top: -4px !important; \
            } \
            #main-window:not([customizing]) #addonbar_v #search-container, \
            #main-window:not([customizing]) #addonbar_v #wrapper-search-container { \
              flex: unset !important; \
            } \
            #main-window:not([customizing]) #addonbar_v #search-container { \
              min-width: unset !important; \
              width: unset !important; \
              height: 100px !important; \
              &[width] { \
                flex: unset !important; \
              } \
            } \
            #main-window:not([customizing]) #addonbar_v #zoom-reset-button > .toolbarbutton-text { \
              min-width: unset !important; \
              min-height: unset !important; \
            } \
            #main-window:not([customizing]) #addonbar_v #zoom-reset-button:not([label]) { \
              display: none !important; \
            } \
            #main-window:not([customizing]) #addonbar_v .toolbarbutton-combined-buttons-dropmarker > .toolbarbutton-icon { \
              width: unset !important; \
              height: 16px !important; \
            } \
            #addonbar_v #aboutabout-ToolBarButton:hover {\
              list-style-image: url("file:///H:/Profile/Firefox/Fx57-H-Default/chrome/icons/a-a-b.png") !important; \
            } \
            `+end_border+`
          `;
        }
    
        var addonbar_right = '';
    
        if(!addonbar_v_on_the_left) {
            addonbar_right =`
              #toolbox_abv{ \
                order: 10 !important; \
              } \
            `;
        }
    
        if(addonbar_v_togglebutton) {
          togglebutton_addonbar_v_style =`
            #togglebutton_addonbar_v .toolbarbutton-icon { \
              list-style-image: url('chrome://browser/skin/sidebars.svg'); \
              fill: #FF3322; \
            } \
            #togglebutton_addonbar_v[checked] .toolbarbutton-icon { \
              list-style-image: url('chrome://browser/skin/sidebars.svg'); \
              fill: #00A600; \
            } \
            /*#togglebutton_addonbar_v .toolbarbutton-icon { \
              list-style-image: url('chrome://browser/skin/forward.svg'); \
              fill: red; \
            } \
            #togglebutton_addonbar_v[checked] .toolbarbutton-icon { \
              fill: green; \
            } \
            #togglebutton_addonbar_v { \
              background: url('chrome://browser/skin/back.svg') no-repeat; \
              background-size: 35% !important; \
              background-position: 10% 70% !important; \
            } \
            #togglebutton_addonbar_v[checked] { \
              transform: rotate(180deg) !important; \
              background: url('chrome://browser/skin/back.svg') no-repeat; \
              background-position: 10% 30% !important; \
            }*/ \
          `;
        }
    
        var compact_buttons_code = '';
    
        if(compact_buttons)
          compact_buttons_code = `
            #addonbar_v toolbarbutton .toolbarbutton-icon { \
              padding: 0 !important; \
              width: 16px !important; \
              height: 16px !important; \
            } \
            #addonbar_v .toolbarbutton-badge-stack { \
              padding: 0 !important; \
              margin: 0 !important; \
              width: 16px !important; \
              min-width: 16px !important; \
              height: 16px !important; \
              min-height: 16px !important; \
            } \
            #addonbar_v toolbarbutton .toolbarbutton-badge { \
              margin-top: 0px !important; \
              font-size: 8px !important; \
            } \
          `;
    
        var uri = Services.io.newURI('data:text/css;charset=utf-8,' + encodeURIComponent(''+addonbar_v_style + togglebutton_addonbar_v_style + addonbar_right + compact_buttons_code), null, null);
    
        var sss = Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService);
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
      }
    
    }
    
    /* initialization delay workaround */
    document.addEventListener('DOMContentLoaded', AddonbarVertical.init(), false);
    /* Use the below code instead of the one above this line, if issues occur */
    /* setTimeout(function(){
      AddonbarVertical.init();
    },2000);
    */
    Alles anzeigen
  • about:about Button

    • Dharkness
    • 12. Mai 2025 um 13:00
    Zitat von Mira_Belle

    Neue, von mir angepasste Version.

    Frage zu den Zeilen 6-7: Müssen die Profile wirklich in %APPDATA% liegen, oder können die auch auf anderen Laufwerken liegen?

  • AddOnLister.uc.js funktioniert in Fx 138 nicht mehr.

    • Dharkness
    • 4. Mai 2025 um 18:54
    Zitat von milupo

    probiert mal folgende Version:

    Das sieht doch fein aus, funktioniert hier vollständig, Dankeschön. :):thumbup:

  • Firefox 1:1 Backup auf neues Windows übertragen

    • Dharkness
    • 3. Mai 2025 um 19:00
    Zitat von .DeJaVu
    Zitat von GermanFreme82

    C:\Users\User\AppData\Local\Mozilla

    Wichtig -> Profil

    Das Profil ist doch nicht in Local, sondern in APPDATA\Roaming, oder?

  • AddOnLister.uc.js funktioniert in Fx 138 nicht mehr.

    • Dharkness
    • 1. Mai 2025 um 21:27
    Zitat von milupo

    Mit der Änderung von Inline-Eventhandler in die Methode mit addEventListener ist es wenigstens möglich in Fx 138 die drei Aktionen aus dem Symbol in der Symbolleiste auszuführen

    Das ist doch schon mal ein Anfang. :thumbup:

  • AddOnLister.uc.js funktioniert in Fx 138 nicht mehr.

    • Dharkness
    • 1. Mai 2025 um 17:02
    Zitat von Sören Hentzschel

    Kein Wunder. Das Script in Beitrag #5 ist ja auch ganz offensichtlich für Thunderbird, u.a. an „messenger.xhtml“ und „mail-toolbox“ zu sehen.

    Das hatte ich zwischenzeitlich auch gesehen und passend geändert, zusätzlich auch die Zeilen 179 und 182, denn die zielen auch auf Thunderbird, aber es gibt noch immer eine Zeile mit onklick und daran scheitere ich. :(

  • AddOnLister.uc.js funktioniert in Fx 138 nicht mehr.

    • Dharkness
    • 1. Mai 2025 um 13:05
    Zitat von Mira_Belle

    Und nun?

    Das Script baut mir hier keinen Button.

  • AddOnLister.uc.js funktioniert in Fx 138 nicht mehr.

    • Dharkness
    • 1. Mai 2025 um 11:32
    Zitat von BrokenHeart

    Was sagt denn die Konsole zu dem Skript?

    Hm, wenn das ↓ Script funktionieren würde, könnte ich es Dir auch sagen. :saint:

    JavaScript
    //  browserkonsole.uc.js
    
    (function() {
    
        if (location != 'chrome://browser/content/browser.xhtml')
            return;
    
        try {
            CustomizableUI.createWidget({
                id: 'browser-konsole-button-2',
                type: 'custom',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                onBuild: function(aDocument) {
                    var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                    var props = {
                        id: 'browser-konsole-button-2',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        label: 'Browser-Konsole',
                        tooltiptext: 'Browser-Konsole öffnen',
                        style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADaSURBVHjaYvz//z8DJYAJn+SFuYy+IEyWAUCN0/iEGDaBMIhNkgFQDZlK2gwMIAxi4zIElwsyDWwRHCg7kygD8DkXmxwTVtsdeBgYmFExWAyLK5iw2sAqCMZZvbEMAcXOcD42VzBh2O5lBFQsCsbPnz9nePLkCZwPlkNzBROm7SJw/PjxY4YfP36giKG7ghGWEoGC/w2Cw4lKfRfWrmQwSP7PCHcB3ES0gNO2vsyganoWQxxZD9gFYNvDkknKAxdWzQW7gomBQsACpacDTcwkUe90lEAkFwAEGACHlFPNBrHqNAAAAABJRU5ErkJggg==)',
                    oncommand:'document.getElementById("menu_browserConsole").click();'
                    };
                    for (var p in props)
                        toolbaritem.setAttribute(p, props[p]);
                    return toolbaritem;
                }
            });
            CustomizableUI.registerToolbarNode(tb);
           } catch(e) { };
    
        function onCommand() {
            var document = event.target.ownerDocument;
            if (!document.getElementById('menu_browserConsole')) {
                let { require } = Cu.import("resource://devtools/shared/loader/Loader.jsm", {});
                require("resource://devtools/client/webconsole/browser-console-manager");
            };
            document.getElementById('menu_browserConsole').click();
        };
    
    })();
    Alles anzeigen


    P.S.:
    Auf dem normalen Weg aufgerufen sagt die Konsole nichts.

  • AddOnLister.uc.js funktioniert in Fx 138 nicht mehr.

    • Dharkness
    • 1. Mai 2025 um 09:25

    Hallo zusammen,

    leider funktioniert das Script AddOnLister.uc.js hier in Fx 138 nicht mehr, gibt es für das Script ein neue Version?

    Hier mal das Script.

    JavaScript
    // ==UserScript==
    // @name           AddOnLister.uc.js
    // @compatibility  Firefox 36.*, 37.*, 60.*, 63.*
    // @include        main
    // @version        1.0.20181102
    // ==/UserScript==
    
    var ADONLI = {
    
    // ----- Start Konfiguration
        // folgende Add-ons nicht auflisten Beispiel: ["InfoLister","AddOnLister.uc.js"]
        BLACKLIST:            [],
        // einige Tests der Konfiguration durchführen (true oder false)?
        CHECKCONFIG:        true,
        // ans eigene System anpassen - Pfad mit Verzeichnistrenner abschliessen. Unter Windows den \ bitte verdoppeln
        EXPORTPATH:            "C:\\Users\\Inet\\Documents\\Fx-Export\\",
        //Dateinamen ohne(!) Erweiterung eingeben - diese wird weiter unten im Wert "fileext" pro Ausgabeformat definiert
        EXPORTFILE:            "addonlister",
        // Ausgabeformat bbcode, html oder custom
        FORMAT:                "html",
        // Erstellungsdatum anzeigen (true oder false)
        SHOWDATE:            true,
        // Useragent anzeigen (true oder false)
        SHOWUSERAGENT:        true,
        // Versuche folgende userChromeJS-Skripte *nicht* mit GitHub zu verlinken, weil nicht gewünscht oder möglich. ["*"] für gar keine Verlinkung
        GITHUBBLACKLIST:    ["about-config.uc.js", "about-plugins.uc.js" ,"AddonsSidebar.uc.xul", "autopopupablepatch1.uc.js", "autopopupablepatch3.uc.js", "Chronik-Lesezeichen.uc.js", "Close-other-tabs.uc.js", "ContextHistory.uc.xul", "CustomAppMenu.uc.js", "Download-button.uc.js", "Einstellungen-Customize.uc.js", "element_inspector.uc.js", "Entwickler-Werkzeug.uc.js", "expandsidebar40.uc.js", "favicon-about-plugins.uc.js", "feedbutton-urlbar.uc.js",    "Fehlerkonsole.uc.js", "Link-per-Email.uc.js", "liste-leeren.uc.js", "memorymonitor.uc.js", "open-folder.uc.js", "OpenDownloadFolderButtonM.uc.js", "OpenLibraryContextMenu.uc.xul", "Preferences.uc.js", "RestartFirefox_plus.uc.js", "savefoldermodoki.uc.xul", "scrollTotop-bottom.uc.js", "searchplugin-4-aboutconfig.uc.js", "speedupErrorConsole.uc.js", "Statusbar-Date.uc.js", "Stylish-Fenster-Sidebar.uc.js", "Tabmixplus-Einstelungen-in-Tabkontext.uc.js", "Tabmixplus-Options.uc.js", "ucjs_PrivateToolMenus-APP.uc.js", "ucjs_statusbar_zoom_panel_1.3.uc.js", "WebDeveloper-Menu.uc.js"],
        // In der folgenden Zeile  den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen:
        TEXTOPENEXE :        'C:\\Program Files\\Notepad++\\notepad++.exe',
        // Aufzulistende Add-On-Typen festlegen - möglich sind: ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"]
        WHICHTYPES:            ["extension","theme","plugin","dictionary","userchromejs"],
    // ----- Ende Konfiguration
    
    // ----- Start Expertenkonfiguration
        ICON_URL:    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACGUlEQVR42mL8//8/AzJYtWy+G5ByB2IrINaECl8H4mNAvDMsKnEXsnqAAGIEGXDv1nmGM2cuKAD5OUCcAcTcDNjBVyCeAcRTTEwMHiipGTIABBALSBSquRmIY5iZmT8ICvI/FxQU4OHm5mID6/r67df79x++vH//kfPv37/FQCFxoJ5aoAEPAAKIBWoyyOYYdnb2Z9LSkqxCQgKSyNby8/OxAzEvH9+H10+fPn/28+fPGKDwSyAuAQggZi01eZCfu4E2f5OVlWYAahaFaTx95jyDnaM3Ax8fL4OhgS4DJycHNysr649Pnz7/Bnrd/OrlC2cAAogJGmDcQGd/Q9YMAv8YORmSkpIY+Hh54GIgNSC10HByBwggFmhoMwD9LIgeYrKSAgz+Ps4MOtqaKOIgtW/evAMxrQACiAkWVcAAY0JWBHQmg7d/ONgb6ABJrSZAADHhiC6G3Xv2gw1xdXFgwAcAAogJmkhAUfUPWeL+w8cMamoqDDLSUgxMbKi+Q1J7HSCAmKApjAEYz++RFV2/fouBg52dYeXqDQzHj+xGMQBJ7TGAAAIZsBNkKDCRcL179+E1TJGXpysDCysbw4dPPxjMzUzgmkFqQGqhqXInQACBkzIw/fcAOcVICUkUm39BmoEJ6TcwIUkBub3AfFECEECwlDgFlDxBKezhw8cfPn36hC8pgwxfAtXDABBAFGcmgABipDQ7AwQYAOqo3UvZE3l2AAAAAElFTkSuQmCC",
        MYTPLS:{
            'html':    //für Darstellung als vollständiges html5-Dokument
                {
                'fileext':'html',
                'opendatauri': false,
                'intro':'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n'
                    +'<title>Meine Firefox-Informationen</title>\n</head>\n<body>\n<h1>Meine Firefox-Informationen</h1>\n',
                'tpllastupd':'<div>\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div>\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions">\n<h2>Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes">\n<h2>Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins">\n<h2>Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries">\n<h2>Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services">\n<h2>Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles">\n<h2>Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts">\n<h2>Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs">\n<h2>userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.</p>',
                                    'userchromejs':'<p>Durch die Erweiterung <a href="http://userchromejs.mozdev.org/">userChromeJS</a> eingebundene Skripte ergänzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':'<small><span style="color:#ff0000;">[deaktiviert]</span></small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':'</body>\n</html>'
                },
            'bbcode':    //für Postings in Foren, die bbcode unterstützen
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'Meine Firefox-Informationen\n\n',
                'tpllastupd':'Letzte Aktualisierung: %%lastupd%%',
                'tpluseragent':'User Agent: %%useragent%%\n',
                'tpladdongrp_title':{
                                    'extension':'[b]Erweiterungen[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'theme':'[b]Themes[/b] (%%count%%)',
                                    'plugin':'[b]Plugins[/b] (%%count%%)',
                                    'dictionary':'[b]Wörterbücher[/b] (%%count%%)',
                                    'service':'[b]Dienste[/b] (%%count%%)',
                                    'userstyle':'[b]Userstyles[/b] (%%count%%)',
                                    'greasemonkey-user-script':'[b]Greasemonkey[/b] (aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)',
                                    'userchromejs':'[b]userChromeJS[/b] (%%count%%)'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'Greasemonkey-Skripte können Webseiten um diverse Funktionen erweitern.',
                                    'userchromejs':'Durch die Erweiterung [url=http://userchromejs.mozdev.org/]userChromeJS[/url] eingebundene Skripte ergänzen den Firefox um diverse Funktionen.'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'[list]'
                                    },
                'tpladdon':'[*][url=%%homepageURL%%]%%name%%[/url] %%version%%: %%description%%%%disabled%%\n',
                'tpladdon_without_url':'[*]%%name%% %%version%%: %%description%%%%disabled%%\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' [color=red][deaktiviert][/color]',
                'tpladdongrp_list_outro':'[/list]\n',
                'tpladdongrp_outro':'\n',
                'outro':''
                },
            'custom':    //Beispiel - für Darstellung als "include" in einem anderen (x)html-Dokument
                {
                'fileext':'txt',
                'opendatauri': true,
                'intro':'<p id="bsbuttons">\n'
                    +'<a class="tab active" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=windows">Windows 7</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html?mode=ubuntu">XUbuntu</a>\n'
                    +'</p>\n'
                    +'<div id="buttons">\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#extensions">Erweiterungen</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#themes">Themes</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#plugins">Plugins</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#dictionaries">Wörterbücher</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#services">Dienste</a>\n'
                    //+'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userstyles">Userstyles</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#gmscripts">Greasemonkey</a>\n'
                    +'<a class="tab" href="http://www.ardiman.de/sonstiges/fxconfig.html#userchromejs">userChromeJS</a>\n'
                    +'<br/></div>\n',
                'tpllastupd':'<div class="lastupd">\nLetzte Aktualisierung: %%lastupd%%\n</div>',
                'tpluseragent':'<div class="useragent">\nUser Agent: %%useragent%%\n</div>',
                'tpladdongrp_title':{
                                    'extension':'<div id="extensions" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_extensions.png" />Erweiterungen <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'theme':'<div id="themes" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_themes.png" />Themes <small>(%%count%%)</small></h2>',
                                    'plugin':'<div id="plugins" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_plugins.gif" />Plugins <small>(%%count%%)</small></h2>',
                                    'dictionary':'<div id="dictionaries" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_dictionaries.png" />Wörterbücher <small>(%%count%%)</small></h2>',
                                    'service':'<div id="services" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_services.png" />Dienste <small>(%%count%%)</small></h2>',
                                    'userstyle':'<div id="userstyles" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_styles.png" />Userstyles <small>(%%count%%)</small></h2>',
                                    'greasemonkey-user-script':'<div id="gmscripts" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_monkey.png" />Greasemonkey <small>(aktiviert: %%countactive%%, deaktiviert: %%countinactive%%, gesamt: %%count%%)</small></h2>',
                                    'userchromejs':'<div id="userchromejs" class="tab-element">\n<h2><img alt="" style="float: right; margin: 0.5ex 1ex 0 0;" width="16" height="16" src="/assets/images/fx_javascript.gif" />userChromeJS <small>(%%count%%)</small></h2>'
                                    },
                'tpladdongrp_intro':{
                                    'default':'',
                                    'greasemonkey-user-script':'<p>Einige Skripte stammen direkt von mir (s. auch <a href="http://www.ardiman.de/sonstiges/fxconfig/gmskripte.html">Greasemonkey-Skripte</a> bzw. <a class="extlink" href="https://openuserjs.org/users/ardiman/scripts" rel="nofollow">https://openuserjs.org/users/ardiman/scripts</a>), andere wurden nur geringf&uuml;gig angepasst.</p>',
                                    'userchromejs':'<p id="fxcuclisteintro">Durch die Erweiterung userChromeJS eingebundene Skripte erg&auml;nzen den Firefox um diverse Funktionen.</p>'
                                    },
                'tpladdongrp_list_intro':{
                                    'default':'<ul>',
                                    'userchromejs':'<ul id="fxcucliste">'
                                    },
                'tpladdon':'<li class="%%class%%"><a href="%%homepageURL%%" rel="nofollow" class="extlink">%%name%%</a> %%version%%: %%description%%%%disabled%%</li>\n',
                'tpladdon_without_url':'<li class="%%class%%">%%name%% %%version%%: %%description%%%%disabled%%</li>\n',
                'activeclass':'addonactive',
                'inactiveclass':'addoninactive',
                'disabledtext':' <small>[deaktiviert]</small>',
                'tpladdongrp_list_outro':'</ul>\n',
                'tpladdongrp_outro':'</div>\n\n',
                'outro':''
                }
        },
    // ----- Ende Expertenkonfiguration
    
        MYSTOR: {},
        //FILEUTILS: Cu.import("resource://gre/modules/FileUtils.jsm").FileUtils,
        FILEUTILS: ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs').FileUtils,
    
        init: function() {
            // legt verschiebbaren Button und Menü unter Extras an
            // Button
            if (location != "chrome://browser/content/browser.xhtml") return;
            try {
                CustomizableUI.createWidget({
                    id: 'adonli-button',
                    type: 'custom',
                    // defaultArea: CustomizableUI.AREA_NAVBAR,
                    onBuild: function(aDocument) {
                        var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                        var attributes = {
                            id: 'adonli-button',
                            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                            removable: 'true',
                            label: 'AddonLister',
                            tooltiptext: 'AddOnLister starten (Erstellung im Format »'+ADONLI.FORMAT+'«):\nLinksklick öffnet Ergebnis im Editor\nMittelklick öffnet Ergebnis als Tab im Browser\nRechtsklick exportiert die Liste ohne Anzeige im Editor oder Browser',
                            style: 'list-style-image: url(' + ADONLI.ICON_URL + ')',
                            onclick: 'event.preventDefault(); return ADONLI.launch(event.button, \"' + ADONLI.FORMAT +'\");'
                        };
                    for (var a in attributes)
                        toolbaritem.setAttribute(a, attributes[a]);
                        return toolbaritem;
                    }
                });
            } catch(e) { };
            // Menü
            function addNode(parentId, type, attributes) {
                let node = document.createXULElement(type);
                for (let a in attributes) {
                    node.setAttribute(a, attributes[a]);
                };
                document.getElementById(parentId).appendChild(node);
            };
            addNode("menu_ToolsPopup", "menu", {
                id: "menu_ucjsAddonLister",
                accesskey: "L",
                label: "AddonLister",
                class: "menu-iconic",
                style: "list-style-image: url(" + ADONLI.ICON_URL + ")"
            });
            document.getElementById("menu_ToolsPopup")
                .insertBefore(document.getElementById("menu_ucjsAddonLister"),
                              document.getElementById("menu_openAddons").nextSibling);
            addNode("menu_ucjsAddonLister", "menupopup", {
                id: "menu_ucjsAddonLister-popup"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-bbcode",
                accesskey: "B",
                label: "BBCODE",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-bbcode", "menupopup", {
                id: "menu_ucjsAddonLister-popup-bbcode"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_editor-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'bbcode\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_browser-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'bbcode\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-bbcode", "menuitem", {
                id: "menu_ucjsAddonLister_write-bbcode",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'bbcode\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-html",
                accesskey: "H",
                label: "HTML",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-html", "menupopup", {
                id: "menu_ucjsAddonLister-popup-html"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_editor-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'html\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_browser-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'html\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-html", "menuitem", {
                id: "menu_ucjsAddonLister_write-html",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'html\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menu", {
                id: "menu_ucjsAddonLister-custom",
                accesskey: "C",
                label: "Custom",
                class: "menu-iconic"
            });
            addNode("menu_ucjsAddonLister-custom", "menupopup", {
                id: "menu_ucjsAddonLister-popup-custom"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_editor-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'custom\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_browser-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'custom\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup-custom", "menuitem", {
                id: "menu_ucjsAddonLister_write-custom",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'custom\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_editor",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(0,\'" + ADONLI.FORMAT + "\')",
                accesskey: "E",
                label: "Liste erstellen und im Editor anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_browser",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(1,\'" + ADONLI.FORMAT + "\')",
                accesskey: "A",
                label: "Liste erstellen und im Browser anzeigen"
            });
            addNode("menu_ucjsAddonLister-popup", "menuitem", {
                tooltiptext: "Erstellung im Format »" + ADONLI.FORMAT + "«",
                id: "menu_ucjsAddonLister_write",
                class: "menAddonLister_item",
                oncommand: "ADONLI.launch(2,\'" + ADONLI.FORMAT + "\')",
                accesskey: "o",
                label: "Liste erstellen ohne Anzeige"
            });
        },
    
        launch: function(e,format) {
            // ruft alle noetigen Funktionen nach Klick auf Toolbarbutton auf
            var ctrlConf = "";
            if (this.CHECKCONFIG) ctrlConf = this.configCheck();
            if (ctrlConf === "") {
                var expfile =  this.EXPORTPATH + this.EXPORTFILE + "." + this.MYTPLS[format].fileext;
                this.getOtherValues();
                this.resetStor();
                this.getAddons();
                if (this.WHICHTYPES.indexOf('userchromejs') !== -1) this.getScripts();
                var result = this.writeAddons(expfile,format);
                this.showAddons(e,this.TEXTOPENEXE,expfile,format,result);
            } else {
                alert ("Lt. Konfigurationstest des AddonListers muss folgendes kontrolliert werden:\n" + ctrlConf);
            }
        },
    
        configCheck: function() {
            var fehler = "";
            // Kontrolle des Pfades
            if (this.EXPORTPATH.substr(-1) !== "\\" && this.EXPORTPATH.substr(-1) !== "/") fehler += "\n - Der Pfad in EXPORTPATH endet nicht mit einem Verzeichnistrenner.";
            if (!this.fileExists(this.EXPORTPATH)) fehler += "\n - Der Pfad »" + this.EXPORTPATH + "« in EXPORTPATH existiert nicht.";
            // Kontrolle des Dateinamens
            if (this.EXPORTFILE.indexOf(".") !== -1) fehler += "\n - Der Dateiname in EXPORTFILE sollte keinen Punkt enthalten (ohne Erweiterung sein).";
            if (this.EXPORTFILE.length === 0) fehler += "\n - Es wurde kein Dateiname in EXPORTFILE hinterlegt.";
            // Kontrolle des Formates
            var formate = ["bbcode", "custom", "html"];
            if (formate.indexOf(this.FORMAT) === -1) fehler += "\n - Ungültiges FORMAT »" + this.FORMAT + "«.";
            // Kontrolle des Editors
            if (!this.fileExists(this.TEXTOPENEXE)) {
                var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                if (!this.fileExists(pref.getCharPref("view_source.editor.path"))) {
                    fehler += "\n - Der in TEXTOPENEXE und about:config [view_source.editor.path] hinterlegte Editor kann nicht gefunden werden.";
                }
            }
            // Kontrolle der gewünschten Addon-Typen, folgende sind momentan gültig:
            var addontypes = ["extension","theme","plugin","dictionary","service","userstyle","greasemonkey-user-script","userchromejs"];
            var w;
            for (w = 0; w < this.WHICHTYPES.length; w++) {
                if (addontypes.indexOf(this.WHICHTYPES[w]) === -1) {
                    fehler += "\n - In WHICHTYPES wurden ein oder mehrere unbekannte Add-on-Typen (z.B. »" + this.WHICHTYPES[w] + "«) gewählt.";
                    break;
                }
            }
            return fehler;
        },
    
        fileExists: function(mypath) {
            // kontrolliert, ob Pfad oder Datei gültig/vorhanden ist
            var file = new this.FILEUTILS.File(mypath);
            return file.exists();
        },
    
        resetStor: function() {
            // setzt das JSON-Object (bzw. die "Listen" darin) zurueck
            var h;
            for (h = 0; h < this.WHICHTYPES.length; h++) {
                this.MYSTOR[this.WHICHTYPES[h]] = [];
            }
        },
    
        getOtherValues: function() {
            // speichert momentan Auswertungsdatum und useragent im JSON-Object
            var options;
            options = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: false};
            if (this.SHOWDATE) this.MYSTOR["lastupd"] = new Date().toLocaleDateString("de-DE", options);
            if (this.SHOWUSERAGENT) this.MYSTOR["useragent"] = window.navigator.userAgent;
        },
    
        getAddons: function() {
            // speichert die gewaehlten Addons (s. WHICHTYPES) im JSON-Object
            var i, x, j, iAo, Addons, added, storedItems;
            AddonManager.getAddonsByTypes(this.WHICHTYPES).then(function(addonlist) {
                Addons = addonlist;
            });
            var thread = Cc['@mozilla.org/thread-manager;1'].getService().mainThread;
            while (Addons === void(0)) {
                thread.processNextEvent(true);
            }
            // Schleife ueber Addons
            for (i = 0; i < Addons.length; i++) {
                iAo = Addons[i];
                added = false;
                storedItems = this.MYSTOR[iAo.type].length;
                // nächste Aktionen nur, wenn Addon *nicht* in BLACKLIST steht
                if (this.BLACKLIST.indexOf(iAo.name) === -1) {
                    // Ablage gleich sortiert vornehmen
                    for (j = 0; j < storedItems; j++) {
                        if (iAo.name.toLowerCase() < this.MYSTOR[iAo.type][j].name.toLowerCase()) {
                            this.MYSTOR[iAo.type].splice(j,0,{ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                            added = true;
                            break;
                        }
                    }
                    if (!added) this.MYSTOR[iAo.type].push({ 'name': iAo.name, 'version': iAo.version, 'active': iAo.isActive, 'homepage': iAo.homepageURL});
                }
            }
        },
    
        getScripts: function() {
            // speichert ggf. im Chrome-Ordner vorhandene uc.js und uc.xul-Dateien im JSON-Object
            var hp, j, storedItems, added;
            // 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/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsIFile);
            // files mit Eintraegen im Chrome-Ordner befuellen
            let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
            // Ordner bzw. Dateien 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)) || this.BLACKLIST.indexOf(file.leafName) !== -1) continue;
                // uc.js bzw. uc.xul gefunden, die nicht in der Blacklist stehen -> Ablage sortiert (unter Linux erforderlich) im JSON vornehmen
                hp = this.githubLink(file.leafName);
                added = false;
                storedItems = this.MYSTOR.userchromejs.length;
                for (j = 0; j < storedItems; j++) {
                    if (file.leafName.toLowerCase() < this.MYSTOR.userchromejs[j].name.toLowerCase()) {
                        this.MYSTOR.userchromejs.splice(j,0,{'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
                        added = true;
                        break;
                    }
                }
                if (!added) this.MYSTOR.userchromejs.push({'name': file.leafName, 'version': undefined, 'active': true, 'description': undefined, 'homepage': hp});
            }
        },
    
        githubLink: function(sName) {
            // übergibt für gegebenen Skriptnamen den Link zu github
            // früher Ausstieg, da Skript nicht verlinkt werden soll
            if (this.GITHUBBLACKLIST.indexOf(sName) !== -1 || this.GITHUBBLACKLIST.indexOf("*") !== -1) return null;
            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 "https://github.com/ardiman/userChrome.js/tree/master/" + sName;
        },
    
        writeAddons: function(file,format){
            var a, t, c, n, d, atype, aout, thisaddon;
            var output = "";
            var addontpl = "";
            var addontplwithouturl = "";
            // Cu.import("resource://gre/modules/osfile.jsm");
    
            addontpl = this.MYTPLS[format].tpladdon;
            addontplwithouturl = this.MYTPLS[format].tpladdon_without_url;
            output += this.MYTPLS[format].intro;
    
            if (this.SHOWDATE) output +=  this.MYTPLS[format].tpllastupd.replace(/%%lastupd%%/g,this.MYSTOR.lastupd)+"\n";
            if (this.SHOWUSERAGENT) output +=  this.MYTPLS[format].tpluseragent.replace(/%%useragent%%/g,this.MYSTOR.useragent)+"\n";
    
            for (t = 0; t < this.WHICHTYPES.length; t++) {
                atype = this.WHICHTYPES[t];
                c = this.MYSTOR[atype].length;
                n = 0;
                d = 0;
                output += this.MYTPLS[format].tpladdongrp_title[atype].replace(/%%count%%/g,c)+"\n";
                if (this.MYTPLS[format].tpladdongrp_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_intro.default + (this.MYTPLS[format].tpladdongrp_intro.default.length > 0 ? "\n" : "");
                } else {
                    output += this.MYTPLS[format].tpladdongrp_intro[atype] + (this.MYTPLS[format].tpladdongrp_intro[atype].length > 0 ? "\n" : "");
                }
                if (this.MYTPLS[format].tpladdongrp_list_intro[atype] == undefined) {
                    output += this.MYTPLS[format].tpladdongrp_list_intro.default+"\n";
                } else {
                    output += this.MYTPLS[format].tpladdongrp_list_intro[atype]+"\n";
                }
                for (a = 0; a < c; a++) {
                    thisaddon =  this.MYSTOR[atype][a];
                    // console.log(atype + " " + thisaddon.name + " " + thisaddon.active);
                    if (thisaddon.homepage == undefined) {
                        aout = addontplwithouturl;
                    } else {
                        aout = addontpl;
                        aout = aout.replace(/%%homepageURL%%/g,thisaddon.homepage.replace(/&(?!amp;)/g,'&amp;'));
                    }
                    aout = aout.replace(/%%name%%/g,thisaddon.name);
                    if (thisaddon.version == undefined) {
                        if (thisaddon.description != undefined) {
                            aout = aout.replace(/ %%version%%: /g,": ");
                        } else {
                            aout = aout.replace(/ %%version%%: /g,"");
                        }
                    }
                    aout = aout.replace(/%%version%%/g,thisaddon.version);
                    if (thisaddon.description != undefined) {
                        aout = aout.replace(/%%description%%/g,thisaddon.description);
                    } else {
                        aout = aout.replace(/%%description%%/g,"");
                    }
                    if (thisaddon.active !== true) {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].inactiveclass);
                        aout = aout.replace(/%%disabled%%/g,this.MYTPLS[format].disabledtext);
                        d++;
                    } else {
                        aout = aout.replace(/%%class%%/g,this.MYTPLS[format].activeclass);
                        aout = aout.replace(/%%disabled%%/g,"");
                        n++;
                    }
                    output += aout;
                }
                output = output.replace(/%%countactive%%/g,n).replace(/%%countinactive%%/g,d);
                output += this.MYTPLS[format].tpladdongrp_list_outro;
                output += this.MYTPLS[format].tpladdongrp_outro;
            }
            output += this.MYTPLS[format].outro+"\n";
            let encoder = new TextEncoder();
            let myarray = encoder.encode(output);
            // let promise = OS.File.writeAtomic(file, myarray);
            let promise = IOUtils.write(file, myarray);
            return output;
        },
    
        showAddons: function(e,RanPath,OpenPath,format,myoutput) {
            // zeigt das EXPORTFILE im Editor oder im Browser (Mittelklick) an
            switch (e) {
                case 0:
                    var file = new this.FILEUTILS.File(RanPath);
                    var proc = Cc["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
                    var args = [OpenPath];
                    // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
                    if (!this.fileExists(RanPath)) {
                        console.log("AddonLister meldet: Editor nicht gefunden, ausweichen auf about:config.");
                        var pref = Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
                        RanPath = pref.getCharPref("view_source.editor.path");
                        file = new this.FILEUTILS.File(RanPath);
                    }
                    proc.init(file);
                    proc.run(false, args, args.length);
                    break;
                case 1:
                    if (this.MYTPLS[format].opendatauri) {
                        var datastring = myoutput.replace(/\n/g,"%0A").replace(/#/g,"%23");
                        // getBrowser().selectedTab = getBrowser().addTrustedTab('data:text/plain;charset=utf-8,' + datastring);
                        openTrustedLinkIn('data:text/plain;charset=utf-8,' + datastring, "tab");
                        XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    } else {
                        // alert sorgt ein wenig dafür, dem OS Zeit fürs Speichern der Datei zu geben ...
                        alert("Export nach »"+ OpenPath + "« ("+ format + "-format) ist erfolgt.");
                        openTrustedLinkIn(OpenPath, "tab");
                        //getBrowser().selectedTab = getBrowser().addTrustedTab(OpenPath);
                    }
                    break;
                default:
                    XULBrowserWindow.statusTextField.label = "Export nach  »"+ OpenPath + "« ist erfolgt.";
                    break;
            }
        }
    
    };
    
    ADONLI.init();
    Alles anzeigen
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Dharkness
    • 21. April 2025 um 20:14
    Zitat von Horstmann

    Sorry Leute, hab ich oben geändert, danke für's Testen und den Hinweis! :) :thumbup:

    Dafür sind wir doch hier und glaube mir, wir machen das gerne, denn so lernen wir auch immer was dazu, Dankeschön für das Script, es mach sein Aufgabe wirklich sehr gut. :) :thumbup:

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Dharkness
    • 21. April 2025 um 19:57
    Zitat von grisu2099

    Da funkt dir wohl noch was anderes dazwischen... :/

    Jupp, ein kleiner Fehler im Script, der hier jetzt korrigiert.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Dharkness
    • 21. April 2025 um 19:52
    Zitat von Mira_Belle

    AH, Hostmann ist da ein kleiner Fauxpas unterlaufen!

    Jupp, habe ich eben auch oben angemerkt.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Dharkness
    • 21. April 2025 um 19:36
    Zitat von Horstmann

    Also hier dann was zum Testen für alle Interessierten

    Hm, so richtig funktionieren tut es hier nicht, in Menüs ohne Ordner, also Menüs in denen nur Lesezeichen sind, funktioniert der Zähler hier nicht.


    Zitat von Dharkness

    so richtig funktionieren tut es hier nicht

    Ich habe den Fehler gefunden, für den Zähler der Lesezeichen darf nicht menuCount eingetragen sein, sondern es muss menuitemCount eingetragen sein, in den Auswahlzeilen stand leider menuCount.

Unterstütze uns!

Jährlich (2025)

60,4 %

60,4% (392,55 von 650 EUR)

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