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

Beiträge von Mira_Belle

  • Skript-Vorstellung: ExtensionOptionsMenu.uc.js

    • Mira_Belle
    • 2. September 2026 um 16:02

    FuchsFan Mit meinen Dämonen triggern mich halt so komische Beiträge.
    Weiß nicht so recht, wie ich diese einsortieren soll,
    und bin dann recht schnell "verschnupft".

  • Skript-Vorstellung: ExtensionOptionsMenu.uc.js

    • Mira_Belle
    • 2. September 2026 um 15:18

    Habe kein Interesse mehr an der Fortsetzung!
    Habe es meinen Vorstellungen angepasst, mit Kommentaren versehen,
    damit ich es auch in Monaten noch verstehe.

    Wer grundsätzlich die Funktionen gut findet, mag FuchsFans Version nutzen,
    eventuell wird die ja weiter gepflegt.

  • Firefox Scrollbalken Farbe ändern

    • Mira_Belle
    • 2. September 2026 um 14:42

    Das war wahrscheinlich der Scrpitcache.

    Freut mich, dass es jetzt wieder funktioniert.

  • Firefox Scrollbalken Farbe ändern

    • Mira_Belle
    • 2. September 2026 um 10:21

    black10 Es ist EIN Ordner samt Inhalt und zwei Scripte, :/

    Die Datei config.js und der Ordner userChromeJS müssen in den Firefox Installationsordner:!:

    Die Datei config-prefs.js muss in den Firefox Installationsordner\defaults\pref:!:

    Einfach nur die alten Dateien mit den neuen überschreiben.

    Und daran denken, der Firefox sollte geschlossen sein.

  • Tab Maushover seit FF 155 geht nicht mehr

    • Mira_Belle
    • 2. September 2026 um 10:03
    Zitat von Sephira

    Ok, damit funktioniert alles wieder

    Super. :thumbup:

  • Firefox Scrollbalken Farbe ändern

    • Mira_Belle
    • 2. September 2026 um 10:00

    black10 Wenn Du doch weitere Script nutzt, die ja auch unter Firefox 155.0 zum Großteil nicht mehr funktionieren dürften,
    warum aktualisierst Du nicht ganz einfach die Dateien zur Nutzung von JavaScript im Firefox?

    Es ist alles ganz genau beschrieben und ist doch wirklich nicht so schwer!

    Mag sein, dass lenny's Lösungsansatz bei der Scrollbar hilft, aber die nächste Anfrage
    warum dieses oder jenes Script nicht mehr funktioniert ist dann doch schon vorprogrammiert!

    Noch mal:

    userChrome.js/Firefox 155/userChrome at master · Endor8/userChrome.js
    Skripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.
    github.com


    Und richtiges Blau wäre => #0000ff

  • Skripte funktionieren nicht mehr seit Update auf FF 155

    • Mira_Belle
    • 2. September 2026 um 09:13
    Zitat von lionsson

    Die Skripte funktionieren bei mir jetzt auch wieder.

    Super. :thumbup:

  • Firefox Scrollbalken Farbe ändern

    • Mira_Belle
    • 2. September 2026 um 09:13
    Zitat von black10

    vor Jahren

    :!:

    Da liegt unter anderem der Fehler. Für den Firefox 155.0 musst Du diverse Dateien austauschen.

    userChrome.js/Firefox 155/userChrome at master · Endor8/userChrome.js
    Skripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.
    github.com

    Und ich meinte aber was anderes!
    Nutzt Du generell Scripte, und wenn ja, eben jenes das die Scrollbalken veränderte?

  • Tab Maushover seit FF 155 geht nicht mehr

    • Mira_Belle
    • 2. September 2026 um 09:07

    Funktioniert hier einwandfrei!

    Hast Du das hier schon gemacht?

    userChrome.js/Firefox 155/userChrome at master · Endor8/userChrome.js
    Skripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.
    github.com
  • Skripte funktionieren nicht mehr seit Update auf FF 155

    • Mira_Belle
    • 2. September 2026 um 09:00
    Zitat von lionsson

    Die muss also nicht ersetzt werden, correcto? GL

    Wenn sie in dieser Version schon vorhanden ist, nein,
    Aber schaden tut es auch nicht. :saint:

  • Firefox Scrollbalken Farbe ändern

    • Mira_Belle
    • 2. September 2026 um 08:57

    black10 Nutzt Du überhaupt schon JavaScript zum Anpassen Deines Firefox?

  • Skripte funktionieren nicht mehr seit Update auf FF 155

    • Mira_Belle
    • 2. September 2026 um 08:53
    Zitat von lionsson

    „userChrome.js“ vom 14.11.2017.

    Ja.

  • Skript-Vorstellung: ExtensionOptionsMenu.uc.js

    • Mira_Belle
    • 1. September 2026 um 23:40

    Sagen wir es so, noch ist es eine Beta.
    Ein Testscript.

  • Skript-Vorstellung: ExtensionOptionsMenu.uc.js

    • Mira_Belle
    • 1. September 2026 um 22:28

    So ein Zufall!
    Schau mal, was ich daraus gemacht habe!
    Erklärungen gibt es ein anderes Mal (Morgen?)

    JavaScript
    // ==UserScript==
    // @name          Extension Options Menu.uc.js
    // @description   Fügt eine Menüschaltfläche zur Verwaltung von Erweiterungen hinzu
    // @include       main
    // @charset       UTF-8
    // @version       5.2
    // @sandbox       false
    // ==/UserScript==
    
    'use strict';
    
    (function() {
    
      if (!window.gBrowser) return;
    
      // ■■■■■■■ UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
      const
                id = 'eom-button',
             label = 'Erweiterungen',
       tooltiptext = 'Menü für Erweiterungsoptionen',
             icon = 'skull-crossbones.svg',
           colour = '#ffe10f',
         iconPath = '/chrome/icons/',
       showVersion = true,
          showAll = false,
       showDisabled = true,
        sortEnabled = 0,
       sortDisabled = 1;
      // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
      const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
      const iconURL = curProfDir + iconPath + icon;
    
      if (!Services.prefs.getBoolPref('svg.context-properties.content.enabled')) {
        Services.prefs.setBoolPref('svg.context-properties.content.enabled', true);
      }
    
    
      /* ============ CSS ============ */
    
      const css = `
        #${id} .toolbarbutton-icon {
          -moz-context-properties: fill, stroke, fill-opacity;
          fill: ${colour};
        }
        #${id}-popup menuitem.menuitem-iconic .menu-iconic-icon {
          width: 16px;
          height: 16px;
          margin-inline-start: 2px;
          margin-inline-end: 6px;
          -moz-context-properties: fill;
        }
    
        #${id}-popup menuitem.menuitem-iconic {
          font-size: 14px !important;
          padding-block: 6px !important;
          padding-inline: 8px !important;
        }
    
        #${id}-popup menuitem.eom-active     { color: #008000 !important; }
        #${id}-popup menuitem.eom-inactive   { color: #CC0000 !important; }
        #${id}-popup menuitem.eom-no-options { color: Gray   !important; }
        #${id}-popup menuitem.addon-uninstall {
          text-decoration: line-through !important;
          font-style: italic !important;
        }
      `;
    
      const style = document.createElement('style');
      style.textContent = css;
      (document.head || document.documentElement).appendChild(style);
    
    
      /* ============ HINWEISFENSTER ============ */
    
      let hoverHint = null;
    
      function createHoverHint() {
        if (hoverHint) return hoverHint;
    
        let panel = document.createXULElement('panel');
        panel.id = id + '-hover-hint';
        panel.setAttribute('noautohide', 'true');
        panel.setAttribute('ignorekeys', 'true');
        panel.setAttribute('level', 'top');
        panel.style.cssText = `
          appearance: none; -moz-appearance: none;
          width: 520px; max-width: 520px; padding: 10px;
          background: #202124; color: #fff;
          border: 3px solid #4a90e2; border-radius: 8px;
          box-shadow: 0 5px 18px rgba(0,0,0,.55);
          pointer-events: none; z-index: 2147483647;
        `;
    
        let desc = document.createXULElement('description');
        desc.id = id + '-hover-hint-text';
        desc.style.cssText = `
          margin: 0; padding: 5px 5px 5px 15px;
          background: grey; color: #fff;
          font-family: Arial, sans-serif; font-size: 15px;
          line-height: 1.5; white-space: pre-wrap;
          overflow-wrap: anywhere; word-wrap: break-word;
        `;
        panel.appendChild(desc);
    
        (document.getElementById('mainPopupSet') || document.documentElement)
          .appendChild(panel);
    
        hoverHint = panel;
        return panel;
      }
    
      function showHoverHint(event, message) {
        let panel = createHoverHint();
        let desc = document.getElementById(id + '-hover-hint-text');
        if (!desc) return;
        desc.textContent = message;
        try { panel.hidePopup(); } catch(e) {}
        panel.removeAttribute('hidden');
        try {
          panel.openPopupAtScreen(event.screenX + 18, event.screenY + 32, false);
        } catch(e) {
          Cu.reportError('EOM: Hinweisfenster konnte nicht geöffnet werden: ' + e);
        }
      }
    
      function hideHoverHint() {
        if (!hoverHint) return;
        try { hoverHint.hidePopup(); } catch(e) {}
        hoverHint.setAttribute('hidden', 'true');
      }
    
    
      /* ============ ADD-ON-AKTIONEN ============ */
    
      function openAddonOptions(addon) {
        let optionsURL = addon.optionsURL || '';
        if (!addon.isActive || !optionsURL) return;
    
        if (addon.optionsType === 3) {
          if ('switchToTabHavingURI' in window) {
            switchToTabHavingURI(optionsURL, true);
          } else {
            openTab('contentTab', { contentPage: optionsURL });
          }
        } else {
          BrowserAddonUI.openAddonsMgr(
            'addons://detail/' + encodeURIComponent(addon.id) + '/preferences'
          );
        }
      }
    
      function browseDir(addon) {
        try {
          let dir = Services.dirsvc.get('ProfD', Ci.nsIFile);
          dir.append('extensions');
          dir.append(addon.id + (addon.unpack ? '' : '.xpi'));
          if (dir.exists()) {
            dir.reveal();
          } else {
            Services.prompt.alert(null, 'Fehler', 'Ordner oder Datei nicht gefunden.');
          }
        } catch(e) {
          Cu.reportError('EOM: browseDir fehlgeschlagen: ' + e);
        }
      }
    
      function restart() {
        let cancelQuit = Cc['@mozilla.org/supports-PRBool;1']
          .createInstance(Ci.nsISupportsPRBool);
        Services.obs.notifyObservers(cancelQuit, 'quit-application-requested', 'restart');
        if (cancelQuit.data) return;
        if (Services.appinfo.inSafeMode) {
          Services.startup.restartInSafeMode(Ci.nsIAppStartup.eAttemptQuit);
          return;
        }
        Services.appinfo.invalidateCachesOnRestart();
        Services.startup.quit(
          Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart
        );
      }
    
      function copyToClipboard(text) {
        Cc['@mozilla.org/widget/clipboardhelper;1']
          .getService(Ci.nsIClipboardHelper).copyString(text);
      }
    
    
      /* ============ MENÜEINTRAG-KLICK ============ */
    
      function handleItemClick(event, item) {
        let addon = item._addon;
        if (!addon) return;
    
        let pending = !!(addon.pendingOperations & AddonManager.PENDING_UNINSTALL);
        let hasModifier = event.ctrlKey || event.shiftKey || event.altKey || event.metaKey;
    
        switch (event.button) {
    
          case 0: // Linksklick
            if (addon.optionsURL && !hasModifier) {
              openAddonOptions(addon);
            } else if (event.ctrlKey) {
              browseDir(addon);
            } else if (event.altKey) {
              copyToClipboard(addon.id);
            }
            break;
    
          case 1: // Mittelklick = Startseite
            if (addon.homepageURL) openURL(addon.homepageURL);
            break;
    
          case 2: // Rechtsklick
            if (!hasModifier) {
              let newState = !addon.userDisabled;
              if (newState) addon.disable(); else addon.enable();
              updateItemState(item, newState);
            } else if (event.ctrlKey) {
              if (pending) addon.cancelUninstall(); else addon.uninstall();
              item.classList.toggle('addon-uninstall', !pending);
            }
            break;
        }
      }
    
      function updateItemState(item, disabled) {
        item.classList.toggle('eom-active', !disabled);
        item.classList.toggle('eom-inactive', disabled);
      }
    
    
      /* ============ MENÜ FÜLLEN ============ */
    
      function sortKey(addon) {
        let pos = addon.isActive ? sortEnabled : sortDisabled;
        return pos + '\n' + addon.name.toLowerCase();
      }
    
      async function populateMenu(popup) {
        while (popup.hasChildNodes()) popup.removeChild(popup.firstChild);
    
        let addons = await AddonManager.getAddonsByTypes(['extension']);
        let previousState;
    
        addons.sort((a, b) => {
          let ka = sortKey(a), kb = sortKey(b);
          return ka < kb ? -1 : 1;
        });
    
        for (let addon of addons) {
    
          if (addon.isBuiltin || addon.id.endsWith('@search.mozilla.org')) continue;
    
          let showIt = !addon.appDisabled && (
            (addon.isActive && addon.optionsURL) ||
            (addon.userDisabled && showDisabled) ||
            (!addon.userDisabled && showAll)
          );
          if (!showIt) continue;
    
          let state = addon.isActive;
    
          if (sortDisabled === 1 && previousState !== undefined && state !== previousState) {
            popup.appendChild(document.createXULElement('menuseparator'));
          }
          previousState = state;
    
          let item = document.createXULElement('menuitem');
          item.classList.add('menuitem-iconic');
    
          let name = addon.name;
          if (showVersion) name += ' [' + addon.version + ']';
          item.setAttribute('label', name);
    
          // Add-on-Symbol (mit Fallback)
          let addonIcon =
            addon.iconURL ||
            addon.iconURL64 ||
            'chrome://mozapps/skin/extensions/extensionGeneric.svg';
          item.setAttribute('image', addonIcon);
          item.style.listStyleImage = 'url("' + addonIcon + '")';
    
          if (addon.isActive) {
            item.classList.add(addon.optionsURL ? 'eom-active' : 'eom-no-options');
          } else {
            item.classList.add(addon.optionsURL ? 'eom-inactive' : 'eom-no-options');
          }
    
          item._addon = addon;
          item._hint =
            'ID: ' + addon.id + '\n\n' +
            'Linksklick = Einstellungsseite öffnen\n' +
            'Rechtsklick = aktivieren/deaktivieren\n' +
            'Mittelklick = Startseite öffnen\n' +
            'Strg + Linksklick = Erweiterungsordner öffnen\n' +
            'Strg + Rechtsklick = deinstallieren/rückgängig\n' +
            'Alt + Linksklick = ID kopieren';
    
          item.addEventListener('mouseenter', e => showHoverHint(e, item._hint));
          item.addEventListener('mouseleave', () => hideHoverHint());
          item.addEventListener('click', e => handleItemClick(e, item));
    
          popup.appendChild(item);
        }
      }
    
    
      /* ============ WIDGET ============ */
    
      try {
        CustomizableUI.createWidget({
          id: id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: label,
          tooltiptext: tooltiptext,
    
          onCreated: (button) => {
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("' + iconURL + '")';
            button.style.color = colour;
            button.setAttribute('type', 'menu');
    
            let popup = document.createXULElement('menupopup');
            popup.id = id + '-popup';
            popup.addEventListener('popupshowing', e => {
              if (e.target === popup) populateMenu(popup);
            });
            popup.addEventListener('popuphiding', hideHoverHint);
            popup.addEventListener('popuphidden', hideHoverHint);
            button.appendChild(popup);
    
            // Kontextmenü unterdrücken
            button.addEventListener('contextmenu', e => e.preventDefault());
    
            // Mittel-/Rechtsklick auf den Button selbst
            button.addEventListener('click', e => {
              if (e.target !== e.currentTarget) return;
              if (e.button === 1) {
                e.preventDefault();
                restart();
              } else if (e.button === 2) {
                e.preventDefault();
                setTimeout(() => {
                  let cm = document.getElementById('toolbar-context-menu');
                  if (cm) cm.hidePopup();
                }, 0);
                BrowserAddonUI.openAddonsMgr('addons://list/extension');
              }
            });
          }
        });
    
      } catch(e) {
        Cu.reportError('EOM: Widget konnte nicht erstellt werden: ' + e);
      }
    
    
      /* ============ AUFRÄUMEN ============ */
    
      window.addEventListener('unload', () => {
        hideHoverHint();
        try { CustomizableUI.destroyWidget(id); } catch(e) {}
      }, { once: true });
    
    })();
    Alles anzeigen

    Es wird definitiv noch kleine Änderungen geben.
    Es fehlen noch Erläuterungen und diverse Kommentare.

    Und auch der Header gefällt mir so nicht wirklich.

  • Skript-Vorstellung: ExtensionOptionsMenu.uc.js

    • Mira_Belle
    • 1. September 2026 um 19:38

    FuchsFan Endlich am Rechner! Ja ich sehe!!
    Und scheint recht interessant zu sein! Habe es mir mal gesichert!

    Danke.

    Aber Du kennst mich:!:
    Ich werde daran herumbasteln.

  • Skript-Vorstellung: ExtensionOptionsMenu.uc.js

    • Mira_Belle
    • 1. September 2026 um 15:48
    Zitat von FuchsFan

    Wenn es aus dem Text nicht hervor geht,

    Auf einem Smartphone recht schwierig!

    Aber gut, habe das zweite Bild, das mit dem Text, vergrößert.

    Kann nicht wirklich gut erkennen, was da so anders sein soll, als bei dem Addonbutton, der schon vorhanden ist.

    Muss es also doch erst testen und vergleichen.

  • Skript-Vorstellung: ExtensionOptionsMenu.uc.js

    • Mira_Belle
    • 1. September 2026 um 14:53

    Ich habe jetzt dreimal Deine Bescheibung zu dem Script gelesen,

    aber weiß immer noch nicht, wozu es gut sein soll.

    Leider kann ich es z.Z. nicht ausprobieren, daher dieser blöde Kommentar.

    Sorry.

  • Skripte funktionieren nicht mehr seit Update auf FF 155

    • Mira_Belle
    • 1. September 2026 um 12:30

    Und dafür, also das Backup, gibt es hier on Board sogar ein PS1-Script!

  • Skripte funktionieren nicht mehr seit Update auf FF 155

    • Mira_Belle
    • 1. September 2026 um 10:16

    seipe Hast Du vor dem Update ein Backup gemacht?

    Spiel es zurück und warte das offizielle Update ab.

    Kein Backup, kein Mitleid!

    Dann musst Du Dich noch einmal ganz genau an die Anleitunen von Endor halten.

    Eventuell hast Du ja dann Glück.

  • Skripte funktionieren nicht mehr seit Update auf FF 155

    • Mira_Belle
    • 1. September 2026 um 09:45
    Zitat

    Unabhängig von deinem Problem, woher hast du die Version?

    Wird wie immer überall angeprießen!

    z.B. auf http://www.deskmodder.de

    Und ist auf den Servern schon vorhanden.

    Ist halt immer die gleiche Leier.

Unterstütze uns!

Jährlich (2026)

76,1 %

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

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