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

  • about:about Button

    • Mira_Belle
    • 12. Mai 2025 um 12:16

    geldhuegel Gerade getestet.
    Skript "installiert" für die "Statusleiste", Firefox neu gestartet und da is' sie.
    Symbolleisten anpassen angeklickt und den Buton "Quicklink about:about"
    in die "neue" Statusleiste gezogen.
    Tab "Firefox anpassen" schließen und Firefox neu gestartet.
    Leiste ist da, Button auch, mit Symbol, und er funktioniert einwandfrei.

    Kann das noch jemand anderes testen, bitte.

  • Restart_Firefox.uc.js

    • Mira_Belle
    • 12. Mai 2025 um 09:47

    Road-Runner Sollte gar kein Problem sein!

    In Zeile 40 einfach "restart.png" anstatt "restart.svg".
    Und in Zeile 48 ein // davor setzten oder die Zeile ganz löschen,
    wobei ich persönlich ehe erstere Variante nutzen würde. ;)

    Zu beachten ist auch, dass die Grafik im richtigen Ordner sein muss:!:

    %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons


    :/

    Das mit dem "richtigen Pfad" werd eich wohl auch noch irgendwie als Hinweis in die Skripte packen.

  • about:about Button

    • Mira_Belle
    • 12. Mai 2025 um 09:39

    Neue, von mir angepasste Version.

    JavaScript
    // JavaScript Document
    // QuickLinkButton-about:about.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/135613/?postID=1213791#post1213791
    // Source file https://www.camp-firefox.de/forum/thema/139289/?postID=1271890#post1271890
    
    /* ----------------------------------------------------------------------------------- */
    /*     Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen     */
    /*            %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons             */
    /* ----------------------------------------------------------------------------------- */
    
    (function() {
      
       if (location.href !== 'chrome://browser/content/browser.xhtml') return;  
       try {
          CustomizableUI.createWidget({
             id: 'link-button-about',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {         
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                let props = {
                   id: 'link-button-about',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Quicklink: about:about',
                   tooltiptext: 'Quicklink:\nabout:about',
                };            
                for (var p in props) {
                   toolbaritem.setAttribute(p, props[p]);
                }           
    
                return toolbaritem; 
             }      
          });
       } catch(e) {};
    
       document.getElementById('link-button-about').addEventListener('click', event => {
          if (event.button === 0) {
             openTrustedLinkIn("about:about", "tab")
          }
       });
    
       // Pfad zum Profilordner
       let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
       // Pfad in den entsprechenden Unterordner
       let IconPath = '/chrome/icons/';
       // Name & Dateiendung des anzuzeigenden Symbols!
       let ButtonIcon = "firefox.svg";
       // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
       let img = new Image();
       img.src = "file:" + ProfilePath + IconPath + ButtonIcon;
       
       img.onload = function() {
          // Wenn die Grafik geladen werden kann, setze das listStyleImage
          document.getElementById('link-button-about').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
          document.getElementById('link-button-about').style.color = '#f1b508';    // Hier wird die Iconfarbe direkt gesetzt
       };
       
       img.onerror = function() {
          // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
          document.getElementById('link-button-about').style.listStyleImage = 'url("chrome://global/skin/icons/warning.svg")';
          document.getElementById('link-button-about').style.color = 'red';    // Hier wird die Iconfarbe direkt gesetzt
       };
    })();
    Alles anzeigen
  • Skript für Add-ons Update - Pfad zum Icon ändern

    • Mira_Belle
    • 12. Mai 2025 um 09:30

    Nachtrag:!:

    Wenn jemand die Fallbacklösung im Skript haben möchte, muss nur die Zeilen ab
    // Pfad zum Profilordner bis })(); komplett mit diesem Code austauschen.


    JavaScript
        // Pfad zum Profilordner
        let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
        // Pfad in den entsprechenden Unterordner
        let IconPath = '/chrome/icons/';
        // Name & Dateiendung des anzuzeigenden Symbols!
        let ButtonIcon = "sync.svg";
        // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
        let img = new Image();
        img.src = "file:" + ProfilePath + IconPath + ButtonIcon;
    
        img.onload = function() {
            // Wenn die Grafik geladen werden kann, setze das listStyleImage
            document.getElementById('addons-update-button').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
            document.getElementById('addons-update-button').style.fill = '#ffe10f';    // Hier wird die Iconfarbe direkt gesetzt
        };
    
        img.onerror = function() {
            // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
            document.getElementById('addons-update-button').style.listStyleImage = 'url("chrome://global/skin/icons/warning.svg")';
            document.getElementById('addons-update-button').style.fill = 'red';    // Hier wird die Iconfarbe direkt gesetzt
        };
    Alles anzeigen
  • Restart_Firefox.uc.js

    • Mira_Belle
    • 12. Mai 2025 um 09:15

    Ach, jetzt verstehe ich!!
    Nein, aber mir ist da wirklich ein kleiner Fauxpas unterlaufen.

    Zeile 64 muss // rechte Maus Neustart und
    Zeile 68 muss // linke Maus Neustart mit Löschung des Start-Caches lauten.

    Wird so gleich korrigiert.

    Danke.

  • Restart_Firefox.uc.js

    • Mira_Belle
    • 12. Mai 2025 um 08:32

    Warum?
    Habe ich mit Absicht so gemacht!
    Da ich den Neustart fast immer mit der linken Maustaste auslöse,
    es soll dann auch der Cache gelöscht werden.

    Oder spricht etwas dagegen?

  • Restart_Firefox.uc.js

    • Mira_Belle
    • 12. Mai 2025 um 00:09

    Es geistern hier onBoard ja einige Versionen dieses Skriptes herum.
    Ich habe mich mal diesem angenommen und es fit gemacht.

    JavaScript
    // Restart_Firefox.uc.js
    // RestartFirefoxButtonM.uc.js
    // v. 0.8
    // Source file https://www.camp-firefox.de/forum/thema/126132/?postID=1093563#post1093563
    // Source file https://www.camp-firefox.de/forum/thema/139338/?postID=1271880#post1271880
    
    /* ----------------------------------------------------------------------------------- */
    /*     Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen     */
    /*            %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons             */
    /* ----------------------------------------------------------------------------------- */
    
    // Linksklick 	if (event.button == 0)
    // Mittelklick 	if (event.button == 1)
    // Rechtsklick 	if (event.button == 2)
    
    (function() {
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
        try {
            CustomizableUI.createWidget({
                id: 'restart-button2a',
                type: 'custom',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                onBuild: function(aDocument) {
                    var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');                
                    let props = {
                        id: 'restart-button2a',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        label: 'Neustart',
                        tooltiptext: 'Neustart (inkl. SkriptCache Löschen)',
    
                        // Hier wird die Hintergrundfarbe und die Iconfarbe direkt gesetzt
                        //style: 'background-color: #FF5733; color: white;'
                        //style: 'color: #f60000;',
    
                    };             
                    for (let p in props)
                        toolbaritem.setAttribute(p, props[p]);
    
    
                    // Pfad zum Profilordner
                    let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
                    // Pfad in den entsprechenden Unterordner
                    let IconPath = '/chrome/icons/';
                    // Name & Dateiendung des anzuzeigenden Symbols!
                    let ButtonIcon = "restart.svg";
                    // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
                    let img = new Image();
                    img.src = "file:" + ProfilePath + IconPath + ButtonIcon;
    
                    img.onload = function() {
                        // Wenn die Grafik geladen werden kann, setze das listStyleImage
                        toolbaritem.style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
                        toolbaritem.style.fill = 'red';    // Hier wird die Iconfarbe direkt gesetzt
                    };
    
                    img.onerror = function() {
                        // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
                        toolbaritem.style.listStyleImage = 'url("chrome://browser/skin/fxa/avatar-empty.svg")';
                        toolbaritem.style.fill = 'red';    // Hier wird die Iconfarbe direkt gesetzt
                    };
    
                    return toolbaritem;
                }        
            });
    
        } catch(e) { };
    
        document.getElementById('restart-button2a').addEventListener('click', event => {
            // rechte Maus Neustart
                if (event.button == 2) {
                  Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
                }
            // linke Maus Neustart mit Löschung des Start-Caches
                if (event.button == 0) {
                    event.preventDefault();
                    Services.appinfo.invalidateCachesOnRestart();
                    Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); 	
                }
            // Mittelklick
                if (event.button == 1) {
            //      event.preventDefault();
            //      Services.appinfo.invalidateCachesOnRestart();
            //      Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
                  openTrustedLinkIn("about:config", "tab");
                }
        });
    
        let sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);       
        let uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
                #restart-button2a.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
                    width: 32px !important;
                    height: 32px !important;
                }
           `), null, null);
        sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
    })();
    Alles anzeigen
  • Skript für Add-ons Update - Pfad zum Icon ändern

    • Mira_Belle
    • 12. Mai 2025 um 00:00

    Und hier eine neue Version!

    JavaScript
    // Addons-UpDate-Check.uc.js
    
    // Source file: https://www.camp-firefox.de/forum/thema/135814/?postID=1263412#post1263412
    
    /* ----------------------------------------------------------------------------------- */
    /*     Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen     */
    /*            %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons             */
    /* ----------------------------------------------------------------------------------- */
    
    (function () {
      if (!window.gBrowser) return;
      try {
        CustomizableUI.createWidget({
          id: "addons-update-button",
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: "Add-ons Update",
          tooltiptext: "Add-ons aktualisieren",
                onCommand: onCommand,
        });
      } catch(e) { };
    
      function onCommand(event) {
        event.target.ownerGlobal.openTrustedLinkIn('about:addons', 'tab');
        addEventListener('pageshow', function onPageshow(event) {
          let document = event.target;
          if (document.URL != 'about:addons') return;
          removeEventListener('pageshow', onPageshow);
          document.querySelector('addon-page-options panel-item[action="view-recent-updates"]').click();
          document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click();
          content.setTimeout(function() {
            let categories = document.getElementById('categories');
            categories.querySelector('button[viewid="addons://updates/recent"]').click();
            categories.querySelector('button[viewid="addons://updates/available"]').click();
          }, 1500);
        });
      };
    
      // Pfad zum Profilordner
      let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
      // Pfad in den entsprechenden Unterordner
      let IconPath = '/chrome/icons/';
      // Name & Dateiendung des anzuzeigenden Symbols!
      let ButtonIcon = "sync.svg";
      // Die Grafik wird geladen
      document.getElementById('addons-update-button').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
      document.getElementById('addons-update-button').style.fill = '#ffe10f';    // Hier wird die Iconfarbe direkt gesetzt
    
    })();   
    Alles anzeigen
  • CSS Änderungen bewirken nichts

    • Mira_Belle
    • 11. Mai 2025 um 23:57

    Eine lokale .html-Datei. OK.
    Eingebunden wird irgendwas von einer externen Seite?
    Muss dann der Code dafür nicht in die userContent.css, oder darüber eingebunden werden?
    Ist nur so eine Überlegung, wirklich wissen tu’ ich das auch nicht.

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • Mira_Belle
    • 11. Mai 2025 um 23:52

    GermanFreme82 Sehr schön.
    und danke für die Rückmeldung. :thumbup:

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

    • Mira_Belle
    • 11. Mai 2025 um 23:41
    Zitat von Horstmann

    Edit: bei mir im Testprofil färbt .style.color = 'red' sowohl das Icon als auch den hover Hintergrund. ;)
    .style.fill = 'red' funktioniert wie erwartet nur für das Icon.

    Ja, so ist es! Deshalb habe ich es in den Skripten geändert, wo das mit dem Fallback vorkommt.


    Zitat von 2002Andreas
    Zitat von Mira_Belle

    Aber ich habe noch eine Farbanpassung

    Hallo Mira.

    Sollte ich dich/das falsch verstanden haben, dann sorry.

    Aber hier hat das Icon keine andere Farbe, nur der Hintergrund bei hover verändert sich:

    Ja, das habe ich heute im Laufe des Tages auch gemerkt.
    Fehler habe ich aber gefixt!


    So, da es hier ja hauptsächlich um Fehlerbereinigung eines bestimmten Skriptes geht.
    Bzw. dieses als Testobjekt ausgesucht wurde, hier meine derzeitige Version!

    JavaScript
    // Button_for_Chromefolder.us.js
    // Öffnen des "chrome"-Ordners im "Profil"
    
    /* ----------------------------------------------------------------------------------- */
    /*     Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen     */
    /*            %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons             */
    /* ----------------------------------------------------------------------------------- */
    
    (function() {
    
        if (location != "chrome://browser/content/browser.xhtml") return;
        try {
            CustomizableUI.createWidget({
                id: 'Open-Chrome-Folder-ToolBarButton',
                type: 'custom',
                onBuild: function(aDocument) {
                    let toolbaritem = aDocument.createXULElement('toolbarbutton');
                    let props = {
                        id: 'Open-Chrome-Folder-ToolBarButton',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        label: 'Chrome-Ordner',
                        tooltiptext: 'Chrome-Ordner öffnen',
                    };
                    for (var p in props)  {
                        toolbaritem.setAttribute(p, props[p]);
                    }
                    return toolbaritem; 
                }
            });
    
        } catch(e){}
    
        document.getElementById('Open-Chrome-Folder-ToolBarButton').addEventListener('click', () => {
                Services.dirsvc.get("ProfD", Ci.nsIFile).launch();           
        });
    
        // Pfad zum Profilordner
        let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
        // Pfad in den entsprechenden Unterordner
        let IconPath = '/chrome/icons/';
        // Name & Dateiendung des anzuzeigenden Symbols!
        let ButtonIcon = "folder.svg";
        // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
        let img = new Image();
        img.src = "file:" + ProfilePath + IconPath + ButtonIcon;
    
        img.onload = function() {
            // Wenn die Grafik geladen werden kann, setze das listStyleImage
            document.getElementById('Open-Chrome-Folder-ToolBarButton').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
            document.getElementById('Open-Chrome-Folder-ToolBarButton').style.webkitAnimationFillMode = '#619dbf';    // Hier wird die Iconfarbe direkt gesetzt
        };
    
        img.onerror = function() {
            // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
            document.getElementById('Open-Chrome-Folder-ToolBarButton').style.listStyleImage = 'url("chrome://global/skin/icons/warning.svg")';
            document.getElementById('Open-Chrome-Folder-ToolBarButton').style.fill = 'red';    // Hier wird die Iconfarbe direkt gesetzt
        };      
    })(); 
    Alles anzeigen
  • Buttons funktionieren nur im/ für das erste Fenster

    • Mira_Belle
    • 11. Mai 2025 um 18:27

    Oh Herr, lass Hirn regnen:!:

    Ich habe vergessen das "Umzubauen".
    Habe bei mir einfach nur den Code vom Fallback nach unten kopiert!
    Kann ja nicht funktionieren.

    Aus toolbaritem.style.listStyleImage = ... muss ja
    document.getElementById('profilefolder-ToolBarButton').style.listStyleImage = ... werden:!::!:

    Oh Mann.

    Aber ich habe noch eine Farbanpassung für all jene, die unterschiedliche Farben für beide Symbole haben wollen!

    Hier mal der ganze Code:

    Code
    // Button_for_Profilfolder.us.js
    // Öffnen des "Profilordners"
    
    (function() {
    
        if (location != "chrome://browser/content/browser.xhtml") return;
        try {
            CustomizableUI.createWidget({
                id: 'profilefolder-ToolBarButton',
                type: 'custom',
                onBuild: function(aDocument) {
                    let toolbaritem = aDocument.createXULElement('toolbarbutton');
                    let props = {
                        id: 'profilefolder-ToolBarButton',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        label: 'Profil-Ordner',
                        tooltiptext: 'Profil-Ordner öffnen',
                    };
                    for (var p in props)  {
                        toolbaritem.setAttribute(p, props[p]);
                    }
                    return toolbaritem;
                }
            });
    
        } catch(e){}
    
        document.getElementById('profilefolder-ToolBarButton').addEventListener('click', event => {
            if (event.button === 0) {
                Services.dirsvc.get("ProfD", Ci.nsIFile).launch();
                }
            });
    
            // Pfad zum Profilordner
            let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
            // Pfad in den entsprechenden Unterordner
            let IconPath = '/chrome/icons/';
            // Name & Dateiendung des anzuzeigenden Symbols!
            let ButtonIcon = "user.svg";
            // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
            let img = new Image();
            img.src = "file:" + ProfilePath + IconPath + ButtonIcon;
    
            img.onload = function() {
                // Wenn die Grafik geladen werden kann, setze das listStyleImage
                document.getElementById('profilefolder-ToolBarButton').style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
                document.getElementById('profilefolder-ToolBarButton').style.color = '#ff5a79';    // Hier wird die Iconfarbe direkt gesetzt
            };
    
            img.onerror = function() {
                // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
                document.getElementById('profilefolder-ToolBarButton').style.listStyleImage = 'url("chrome://browser/skin/fxa/avatar-empty.svg")';
                document.getElementById('profilefolder-ToolBarButton').style.color = 'red';    // Hier wird die Iconfarbe direkt gesetzt
            };
    
    })();
    Alles anzeigen
  • Buttons funktionieren nur im/ für das erste Fenster

    • Mira_Belle
    • 11. Mai 2025 um 15:44

    Ja, es geht um das Skript #7 und Test #18.
    Geht bei mir Fehlerfrei.


    Zitat von Horstmann

    Davon abgesehen, was spricht dagegen den Fallback Code nach unten zu setzen? :/

    Wenn der Code für den Fallback aus der Funktion onBuild: function(aDocument) { genommen wird,
    funktioniert das Skript gar nicht mehr und dem Button, den es ja dennoch gibt, fehlt die Grafik!

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

    • Mira_Belle
    • 11. Mai 2025 um 14:21

    Danke:!:
    Wohl möglich, ein Mac-spezifisches Problem?

    Dann kümmere ich mich jetzt erst einmal um die anderen Skripte.

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

    • Mira_Belle
    • 11. Mai 2025 um 10:41
    Zitat von Horstmann

    Also: Erstes Fenster ist Fenster A, dann neues Fenster B öffnen.

    Dann Fenster A schliessen, dann zusätzlich zu Fenster B noch ein Fenster C öffnen --> Fenster C hat Buttonfunktion, weil die Funktion nach unten bewegt wurde; Icons hat Fenster C keine, weil diese beiden Funktionen (Icon und Fallback) nicht bewegt wurden.

    Ist evtl. Problem #3 wegen dem extra nötigen Schritt in Windows, aber das gleiche Prinzip.

    Gesagt, getan!
    Funktioniert.
    Habe auf Funktion und auf das "erscheinen" der Grafik geachtet!
    Mit Fallback und ohne Fallback. Mh. :/

    Jetzt bräuchten wir mal jemanden mit Windows, der das auch noch mal durchspielt.
    2002Andreas wenn Du etwas Zeit hättest, könntest Du bitte mal das Szenario durchspielen
    mit all seinen Facetten? Oder BrokenHeart Du?

    FuchsFan Cooles Skript!

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

    • Mira_Belle
    • 10. Mai 2025 um 20:19

    Horstmann Habe so eben noch einmal den Elchtest mit ButtonProfilordner.uc.js gemacht!
    Habe die Ausfallroutine aktiviert, neues Fenster geöffnet, und auch da ist das Symbol (die Grafik) sichtbar!
    Auch ist die Funktion gegeben. :/

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

    • Mira_Belle
    • 10. Mai 2025 um 09:59
    Zitat von FuchsFan

    Besser sie sind fertig nutzbar. ;) :)

    Habe mal nur einfach Links gesetzt!
    Wenn ich nicht weiter komme, kann ich ja das betreffende Skript
    mit einer Anfrage in einem neuen Thread posten.

    # ----------------------------------------------------------------------------------------------------------- #

    // Addons-UpDate-Check.uc.js

    // Restart_Firefox.uc.js
    Ist im Prinzip dieses.

    // restart_item_in_menu.uc.js

    Dann noch Skripte die auf diesem aufbauen!
    Unteranderem auch das für about:about

    // Quicklink

    Und noch zwei andere, eines zum Aufrufen für ein eigenes Downloadfenster
    und eines zum Aufrufen des Forums. "Quicklink" ein bisschen anders als die verlinken Beispiele.

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

    • Mira_Belle
    • 10. Mai 2025 um 09:40
    Zitat von FuchsFan

    Ich danke dir, aber wie müsste der Ablauf z.B. für about:about, oder auch Konsole aussehen, bekomme es nicht gebacken.

    Da mache ich mich auch noch drann, meines besteht den Elchtest auch nicht!

    Apropos Elchtest.
    Ich habe insgesamt 7, die den Test nicht bestanden haben.
    Sobald ich die gefixt habe, stelle ich sie rein, oder soll ich sie schon ungefixt hier "vorstellen"?

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Mira_Belle
    • 10. Mai 2025 um 08:28

    moko2000
    ありがとうございました。

    この翻訳が正しいことを願っています。
    DeepLで作成しました。

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

    • Mira_Belle
    • 10. Mai 2025 um 01:22

    FuchsFan

    Für das Skript hier ein Ersatz.
    Es ist eine überarbeitete Version, die sowohl den Fix von Horstmann enthält als auch den Fallbackfix!

    Anzumerken ist, dass die Grafiken natürlich im richtigen Pfad sein müssen:!:
    %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons

    Ich meine, dass darüber im Forum schon "gesprochen" wurde.

    JavaScript
    // ButtonProfilordner.uc.js
    // Öffnen des "Profilordners"
    
    (function() {
    
        if (location != "chrome://browser/content/browser.xhtml") return;
        try {
            CustomizableUI.createWidget({
                id: 'profilefolder-ToolBarButton',
                type: 'custom',
                onBuild: function(aDocument) {
                    let toolbaritem = aDocument.createXULElement('toolbarbutton');
                    let props = {
                        id: 'profilefolder-ToolBarButton',
                        class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                        label: 'Profil-Ordner',
                        tooltiptext: 'Profil-Ordner öffnen',
            //            onclick: 'if (event.button == 0) { \
            //                    Services.dirsvc.get("ProfD", Ci.nsIFile).launch(); \
            //                }; '
                    };
                    for (var p in props)  {
                        toolbaritem.setAttribute(p, props[p]);
                    }
    
                    // Pfad zum Profilordner
                    let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
                    // Pfad in den entsprechenden Unterordner
                    let IconPath = '/chrome/icons/';
                    // Name & Dateiendung des anzuzeigenden Symbols!
                    let ButtonIcon = "prof.png";
                    // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann
                    let img = new Image();
                    img.src = "file:" + ProfilePath + IconPath + ButtonIcon;
    
                    img.onload = function() {
                        // Wenn die Grafik geladen werden kann, setze das listStyleImage
                        toolbaritem.style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")';
                    };
    
                    img.onerror = function() {
                        // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon
                        toolbaritem.style.listStyleImage = 'url("chrome://browser/skin/fxa/avatar-empty.svg")';
                    };
                    return toolbaritem; 
                }
            });
    
        } catch(e){}
    
        document.getElementById('profilefolder-ToolBarButton').addEventListener('click', event => {
            if (event.button === 0) {
                Services.dirsvc.get("ProfD", Ci.nsIFile).launch();
                }
            });
    })();    
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

67,1 %

67,1% (435,86 von 650 EUR)

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