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

Beiträge von Horstmann

  • Firefox Mac: zusätzliche Profile öffnen im Hintergrund?

    • Horstmann
    • 27. Juli 2023 um 12:14
    Zitat von Sören Hentzschel

    Es gibt keine Option, um das Verhalten zu ändern. Bugzilla:

    https://bugzilla.mozilla.org/show_bug.cgi?id=1577057

    Vielen Dank, Sören! :)

    ich hatte mir den Wolf gegoogelt, das aber nicht gefunden...

    Ich bin auch nur darauf gekommen, weil witzigerweise ein weiteres "skurriles" Verhalten dazukommt; wird das Zusatzprofil aus dem Überhangsmenü gestartet - mit den Scripts aus diesem Thema - öffnet es inaktiv und über dem Fenster vom Ursprungsprofil - vermutlich aber hinter dem Überhangsmenü-Popup.

    Schwer in Bildern zu zeigen, ich denke es könnte die Art sein wie Fx solche Popups in den Vordergrund zu drücken scheint.

    Ist dann wohl halt so... ;)

  • Firefox Mac: zusätzliche Profile öffnen im Hintergrund?

    • Horstmann
    • 27. Juli 2023 um 11:18

    Wenn ich über about:profiles ein zusätzliches Profil öffne, mit Profil zusätzlich ausführen, erscheint dieses Profil hinter dem Ursprungsprofil.

    Also in Profil A öffne ich Profil B, und das Fenster von Profil B liegt hinter Profil A, das im Vordergrund und "aktiv" bleibt.

    In diesem Beitrag bin ich darauf aufmerksam gemacht worden, dass dies in Windows nicht der Fall sei; tatsächlich ist es bei anderen Programmen auch auf dem Mac so, dass neue Fenster, Tabs oder zuletzt gestartete Programme generell im Vordergrund geöffnet werden.

    Fenster sowie Tabs sind auch in Firefox "normal" in der Hinsicht (bzw. optional einstellbar), nur eben das Öffnen von zusätzlichen Profilen(/Instanzen?) verhält sich anders.

    Gibt es evtl. eine Option in about:config o.ä., die diese Profile im Vordergrund erscheinen lässt, oder eine macOS Einstellung die hier greift?

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 27. Juli 2023 um 09:56
    Zitat von Mira_Belle
    Zitat von .DeJaVu

    -p "Name". Nicht -p "Ordner", für Ordner wäre es eh -profile

    https://wiki.mozilla.org/Firefox/CommandLineOptions

    Namen und Ordner stehen in der profiles.ini.

    HA :!:

    Danke .DeJaVu für diesen Link!

    Horstmann

    Es gibt eine keine Änderung, was den Aufruf zum Profilmanager betrifft!

    JavaScript
    ----
    Alles anzeigen

    Jetzt klappt die Option! :thumbup: :)

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 26. Juli 2023 um 22:32
    Zitat von Mira_Belle

    Button ID habe ich geänder!

    Lable & Tooltip auch.

    Aber was meinst Du mit "... Text im Anpassenfenster ..."?

    Für die Änderung musst Du doch nur Zeile 45 deaktivieren und dafür die Zeile 44 aktivieren. Mehr ist es nicht.

    Mit dem Text meinte ich das Label, da steht Quicklink: etc. .

    Oder soll Quicklink dabei stehen?

    Die Änderungsoption hatte ich genau so probiert (bzw. andersrum ;), untere Zeile aktivieren, die darüber //aus), und nochmal mit der neuen Version: das passiert hier bei mir (das Zusatz-Testprofil war dabei geschlossen, also kein 2ter Öffnungsversuch des Profils) ->

    Vermutlich wieder ein Mac spezifisches Problem...


    Zitat von omar1979
    Zitat von 2002Andreas

    Somit ist alles richtig.

    Keine Ahnung, warum das bei mir passiert ist. Das Script das ich oben gepostet habe, zeigt mir auch kein Icon mehr an.

    In Zeile 16 hast du 2 "" am Ende von dem Iconnamen, das könnte es sein.

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 26. Juli 2023 um 19:51
    Zitat von lenny2
    Zitat von Horstmann

    Könntest du das von dir benutzte Script mal posten?

    Post #54 Bitte


    Danke. :)

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 26. Juli 2023 um 17:56
    Zitat von Mira_Belle

    Hier noch einmal die z.Z. aktuelle Version!

    Zitat von Mira_Belle

    Zitat von Horstmann

    Ich verliere hier langsam den Überblick. ;)

    Immer die zuletzt von mir gepostete Version ist die Aktuelle!

    Soll ich die Version(en) mit Nummern versehen?

    Danke, ich war nur neugierig ob Lenny irgendwas anders eingestellt hat.

    Einen Vorschlag hätte ich - die Button ID vielleicht umbenennen und das Label/Tooltip - es ist ja kein aboutprofiles mehr ;), und der Text im Anpassenfenster ist nicht korrekt mit dem Quicklinkdingens; natürlich nur visuelle Kleinigkeiten.


    Die Auswahlfensteroption im neusten Script funktioniert bei mir nicht, oder ich mach was falsch - aber das würde ich eh nicht haben wollen, zu umständlich und man kann sich das Startprofil wegklicken.

    Für eine 2-Click Variante geh ich jetzt über ein about:profiles Script ähnlich wie am Anfang hier erwähnt, und verschiebe mit CSS das wichtigste Testprofil in about:profiles ganz nach oben in der Profilliste.

    Der Vorteil gegenüber dem about:profiles Lesezeichen ist, dass das Script die Seite in einem neuen Tab öffnet, und ich kann das Ding verschieben.

    Dein Script ist immer noch super :thumbup: , nur stört mich das inkonsistente Startverhalten auf meinem Mac, wenn ich den Button im Überhangmenü benutze - und da kommt bei mir alles rein was geht. ;)

    Veilleicht taucht ja noch ein Macuser auf mit Ideen, aber die scheinen hier selten zu sein. :huh:

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 26. Juli 2023 um 16:12
    Zitat von lenny2

    v116.0beta8 Das "alte" Skript funktioniert gut. Das andere Profil startet im Vordergrund, und der Cursor ist in der Adressleiste aktiv.

    Das Skript heißt ProfilesChangesButton.uc.js, die Logik ist f-favorites, l-links, p-profiles etc.

    Könntest du das von dir benutzte Script mal posten?

    Ich verliere hier langsam den Überblick. ;)

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 26. Juli 2023 um 10:17
    Zitat von Mira_Belle
    Zitat von Horstmann

    War mir vorher nicht aufgefallen; normalerweise liegt das Fenster vom neu geöffneten Profil im Hintergrund.

    Nachtrag: Das ist wirklich schräg - wenn ich den Profilbutton in die Navbar ziehe, wird das Zusatzprofil und sein Fenster im Hintergrund geöffnet.

    Wenn der Button aber im Überhangmenü ist, öffnet das Fenster vom Zusatzprofil im Vordergund.... :/

    Ist bei mir. Windows 10, nicht so!

    Das neue Fenster der neuen Instanz öffnet sich VOR dem Fenster mit der "alten" Instanz.

    Und es ist Wurscht wo ich den Button platziere.

    Eventuell könne die anderen ja das noch einmal testen.

    Alles anzeigen

    Danke für's Probieren. :)

    Hmm, das ist wirklich seltsam, hört sich an wie ein mögliches Mac Problem/Eigenheit mit Fx. :/

    Weil eigentlich wird in jedem Programm und im Finder alles "Neue" im Vordergrund und aktiv geöffnet...

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 25. Juli 2023 um 22:29
    Zitat von Mira_Belle
    Zitat von Horstmann

    Die Funktion ist wie in der ersten Scriptversion, mit der Fehlermeldung wenn man das schon offene Zusatzprofil nochmal zu öffnen versucht.

    Sehe ich auch so, aber wenn dieses Skript besser funktioniert als die Vorgängerversionen, werde ich weiter puzzeln. :D

    Nur eines ist auch mit der neuen Version seltsam: das neue/ Zusatzprofil Fenster wird über dem Ursprungsprofil Fenster geöffnet, ist aber nicht tatsächlich im Vordergrund bzw. aktiv bis man in das neue Fenster klickt. :/

    War mir vorher nicht aufgefallen; normalerweise liegt das Fenster vom neu geöffneten Profil im Hintergrund.

    Nachtrag: Das ist wirklich schräg - wenn ich den Profilbutton in die Navbar ziehe, wird das Zusatzprofil und sein Fenster im Hintergrund geöffnet.

    Wenn der Button aber im Überhangmenü ist, öffnet das Fenster vom Zusatzprofil im Vordergund.... :/

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 25. Juli 2023 um 20:33
    Zitat von Mira_Belle

    Bitte testet mal diese Version.

    Ist noch nicht perfekt, aber es geht ja erst einmal darum, ob der Button in den Versionen erscheint,

    bei denen die andere Version scheinbar nicht funktioniert.

    Das Öffnen einer weiteren Instanz mit anderem Profil sollte gehen.

    ich kann leider nicht mehr Nightlies testen (Mac zu alt), also keine grosse Hilfe meinerseits auf der Baustelle, aber in 115 funktioniert das Icon wie gehabt mit der neuen (althergebrachten?) Dateipfad Version. :thumbup:

    Die Funktion ist wie in der ersten Scriptversion, mit der Fehlermeldung wenn man das schon offene Zusatzprofil nochmal zu öffnen versucht.

    Ist aber besser die Fehlermeldung zur Not wegzuklicken, als Fx neuzustarten damit der Button wieder klappt. ;)

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 25. Juli 2023 um 20:18
    Zitat von 2002Andreas

    Keine Ahnung was da nicht passt bei mir :/

    In Fx 115 funktioniert das alles einwandfrei.

    In der Beta und dem Nightly wird kein Icon angezeigt, die Funktion ist aber gegeben.

    Und ja, es gibt überall den Ordner Icons mit dem gewolltem Symbol ;)


    Das gleiche Skript in die ESR 115 eingefügt, Icon wird angezeigt.

    Zukünfige Änderungen im Dateipfaddingens (Fachbegriff!)?

    Kann auf meinem alten macOs leider keine aktuellen Nightlies mehr bekommen zum Testen...

    Zu Not sollte ja immer noch zusätzliches CSS funktionieren:

    CSS
    #aboutprofiles-button .toolbarbutton-icon {
        list-style-image: url("icons/YourIcon-1.png") !important;
    }
  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 25. Juli 2023 um 12:24
    Zitat von Mira_Belle

    Bitte Testen :!:

    Nun sollte nichts mehr passieren, wenn der Button ein zweites Mal betätigt wird.

    JavaScript
    // JavaScript Document
    // QuickProfilesChangesButton.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/136664/?postID=1231402#post1231402
    
    (function() {
    
       let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')) // Profilpfad zum Ordner des Symbols
       let buttonIcon = "XXX.xxx" // Name & Dateiendung des anzuzeigenden Symbols. Hier "XXX.xxx" das eigene Symbol inkl. Dateiendung eintragen
    
       let instanceStarted = false; // Variable, um den Status der Instanz zu verfolgen
    
       if (!window.gBrowser) return;
       
         CustomizableUI.createWidget({
           id: 'aboutprofiles-button',
           defaultArea: CustomizableUI.AREA_NAVBAR,
           label: 'Quicklink: about:profile',
           tooltiptext: 'Quicklink:\nabout:profiles',
           onCommand: onCommand,
           onCreated: function(button) {
             button.style.listStyleImage = "url('" + profilePath + buttonIcon + "')";
             }
          });
       
       function onCommand() {
    
          // Prüfen, ob die Instanz bereits gestartet wurde
          if (instanceStarted) {
             console.log('Instanz wurde bereits gestartet. Der Aufruf wird abgebrochen.');
             return;
          }      
          instanceStarted = true; // Markieren, dass die Instanz gestartet wurde
    
          let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          var arguments = ["-no-remote", "-P", "Standard-Benutzer"] // Profil wird ausgewählt
          file.initWithPath("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); // Pfad zur Firefox-Installation
    //       file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox"); // Pfad zur Firefox-Installation, Dateipfad für Mac User
          let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); 
          process.init(file);
          process.run(false, arguments, arguments.length); // Profil wird bestätigt
       }
    })();
    Alles anzeigen

    Scheint perfekt zu funktionieren, du bist die Beste, herzlichen Dank! :) :thumbup:

    Gar nicht so übel für jemanden die von Javascript keine Ahnung hat (Zitat). ;)

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 25. Juli 2023 um 10:20
    Zitat von Mira_Belle

    Geschafft!

    Nichts ist unmöglich!

    Was nicht passt, wird passend gemacht!


    Hier das Skript, das erst einen Button erstellt und dann, wenn man ihn betätigt, eine weitere Instanz

    mit einem bestimmten Profil startet.

    JavaScript: QuickProfilesChangesButton.uc.js
    // JavaScript Document
    // QuickProfilesChangesButton.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/136664/?postID=1231379
    
    (function() {
    
       let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')) // Profilpfad zum Ordner des Symbols
       let buttonIcon = "XXX.xxx" // Name & Dateiendung des anzuzeigenden Symbols. Hier "XXX.xxx" das eigene Symbol inkl. Dateiendung eintragen
    
       if (!window.gBrowser) return;
       
         CustomizableUI.createWidget({
           id: 'aboutprofiles-button',
           defaultArea: CustomizableUI.AREA_NAVBAR,
           label: 'Quicklink: about:profile',
           tooltiptext: 'Quicklink:\nabout:profiles',
           onCommand: onCommand,
           onCreated: function(button) {
             button.style.listStyleImage = "url('" + profilePath + buttonIcon + "')";
             }
          });
       
       function onCommand() {
    
          let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          let arguments = ["-no-remote", "-P", "Standard-Benutzer"] // Profil wird ausgewählt Hier "XXX" das gewünschte Profil eintragen, z.B. Test
          file.initWithPath("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); // Pfad zur Firefox-Installation
          let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); 
          process.init(file);
          process.run(false, arguments, arguments.length); // Profil wird bestätigt
       }
    })();
    Alles anzeigen
    Alles anzeigen

    Super, dankeschön !! :thumbup: :)

    Nur 2 Dinge:

    Der Dateipfad für Mac User, einfach die entsprechende Zeile austauschen:

    Benutzt auf High Sierra, FX im Standard Installationsordner.

    JavaScript
          file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox");

    Und ein kleiner Haken: wenn man das zusätzliche Profil schon offen hat, und den Button versehentlich nochmal drückt, gibt es eine Fehlermeldung.

    Wenn man den normalen Button in about:profiles mehrfach drückt, gibt es kein Problem, es geht nur ein neues Fenster auf im zusätzlichen Profil.

  • Zweiten Reload-Stop-Button machen

    • Horstmann
    • 24. Juli 2023 um 23:08
    Zitat von BrokenHeart

    Das kann ich hier nicht bestätigen. Ich hatte es schon vorher getestet und jetzt nochmal mit der Mozilla-Seite, aber bei mir unterbricht er den Ladevorgang nicht, wenn ich den neuen Button betätige. :/

    Ja wie gesagt, es handelt sich um einen neuen Reload-Button. Der hat auch wie das Original eine 'animatable-box'. Das, was jetzt 'stop-reload-button-2' heißt, ist kein kombinierter Reload/Stop-Button. Im Inspektor wird es deutlicher:

    Edit:

    Du hast recht, es ist kein Kommbibutton, nur Reload ohne Stop.

    Hmm, bei mir wird mit deinem Script das Laden unterbrochen, beim Click auf den neuen Button. :/

    Gelogen - das Laden wird nicht unterbrochen, es wird nur die momentan offene Website neugeladen, wenn sie noch angezeigt ist, und deswegen dann das Laden der nächsten Website abgebrochen.

    Im Inspector bleibt der Stop Button "ausgegraut" beim Laden, während er im orginalen Stop-Reload Button beim Ladevorgang auf "aktiv" wechselt, also volle Deckkraft bzw. Farbe.

    Allerdings blitzt der der Stop Button #2 ganz kurz farbig auf im Inspector, wird dann aber nicht aktiviert. :/


    Das gleiche mit der animierten Box in beiden Unter-Buttons (reload und stop), die bleibt permanent "ausgegraut" (....) im zusätzlichen Stop-Reload Button, nicht aber im Original.

  • Zweiten Reload-Stop-Button machen

    • Horstmann
    • 24. Juli 2023 um 21:02
    Zitat von BrokenHeart

    Horstmann Ich glaube, dass das doch nicht der richtige Weg ist. ;( Ich sehe gerade, dass eigentlich nur ein Reload-Button erzeugt wurde, was ja eigentlich auch klar ist, wenn man sich den Code anschaut. Stop und reload haben die gleiche ID und den 'reload'-Button hat er dann wohl einfach als letztes registriert... Oder siehst du das anders? :/

    Falls ich in irgeneiner Form den Eindruck erweckt habe, dass ich weiss wovon ich rede - Meine Entschuldigung! ;)

    Absolut korrekt, es wird nur der Reload Button erzeugt in meinem groben Beispiel, jeder nachfolgende Eintrag für createButton  wird ignoriert.

    Bin mir nichtmal mehr sicher warum ich das überhaupt gepostet habe, hatte wohl zuviel rumprobiert... X/

    Mein Punkt war eher der, dass der Stop-Reload Button eben vielschichtig ist, im Gegensatz zu den einfacheren Back/Forward Buttons, bei denen das ursprüngliche Script problemlos funktioniert.

    Bei deiner Version mit createButton('stop-reload-button'); wird der gesamte Button inkl. Unter-Buttons erzeugt; aber wie gesagt, scheinbar wird nur das Reload-Button Icon tatsächlich angezeigt.

    Die Funktionen, auch für Stop, sind aber da. :/

    Testen kann man das mit einer langsam ladenden Website, wie zB dieser (offizieller Mozilla Link).

    Interessanterweise ist dabei das Verhalten des zusätzlichen Stop-Reload Buttons anders als beim originalen Button.

    In den Browsertools sieht man, dass beim neuen Button nur das erste child - der Reload Button - geladen wird, und auch nur der Button, und nicht die untergordnete Animation.

    Der Stop Button wird gar nicht geladen.

    Wieso - keine Ahnung, kann ich leider nur fassungslos beobachten... ;)

  • Zweiten Reload-Stop-Button machen

    • Horstmann
    • 24. Juli 2023 um 18:32
    Zitat von BrokenHeart

    Nur der Event zum 'Abbrechen' wird nicht weitergeleitet ('X'). Aber ansonsten funktioniert der Reload...

    Zitat von 2002Andreas

    Normalerweise müsste da das Icon für den Reload sein, und nicht für Stop.

    Es müssen also 2 Icons im Skript erstellt werden.

    Aber er wollte doch den kombinierten Button (Stop/Reload) dupliziert haben, oder hatte ich es falsch verstanden?

    Ich könnte mir vorstellen, dass das Script den Button und die Funktion kreiert, aber nicht alle darunterliegenden Buttons, bzw. deren Darstellung.

    Der stop-reload-button hat selber gar kein Icon, lädt aber hier anscheinend das vom ersten child - reload-button - und nur das.

    Der stop-reload-button hat ja 2 children - reload-button und stop-button, beide haben dann noch jeweils eine Animation unter sich.

    Wenn ich deine Version abändere, bleibt die Funktion erhalten, aber gar keine Buttonicons sind sichtbar.

    Der Button an sich ist aber da, funktioniert und der Hintergrund taucht bei hover auch auf.

    JavaScript
    (function() {
    
      if (window.__SSi != 'window0')
        return;
    
      function createButton(str) {
        CustomizableUI.createWidget({
          id: 'stop-reload-button-2',
          type: 'custom',
          defaultArea: CustomizableUI.AREA_NAVBAR,
          onBuild: function() {
                let button = document.getElementById(str).cloneNode(true);
                button.id = 'stop-reload-button-2';
                //button.style.listStyleImage = 'url(chrome://browser/skin/' + str + '.svg)';
                button.style.listStyleImage = 'url("file:///C:/Users/Ramo/AppData/Roaming/Mozilla/Firefox/Profiles/g4mso52s.default-release/chrome/Icons/arfresh.svg")';
                button.setAttribute('onclick',
                  'checkForMiddleClick(this, event); if (event.button == 0) event.target.ownerDocument.getElementById("' + str + '-button").click();');
                button.setAttribute('onmousedown', 'if (event.button == 0) event.preventDefault();');
                return button;
          }
        });
      }
    
      //createButton('stop-reload-button');
      createButton('reload-button');
      createButton('stop-button');
    
    })();
    Alles anzeigen

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

    • Horstmann
    • 22. Juli 2023 um 12:36
    Zitat von Mira_Belle
    Zitat von Horstmann

    ...

    Den Text zu verstecken bei diesen Vorgaben geht mit seinem Code if (menuCount == 0) {menuCount ='\xa0';}; und if (menuitemCount == 0) {menuitemCount ='\xa0';};, zugefügt zu meinem.

    Dann müsste müsste er "nur" noch das Icon wegbekommen. :/

    Oh, cool. :thumbup:

    Wenn es das ' 🗁 ' aus seinem Code ist, sollte das auch so einfach gehen.

    Ich weiß nur gerade nicht, an welcher Stelle es eingefügt werden muss.

    Alles anzeigen

    Nur der Vollständigkeit halber, ich denke ich hab es dann doch geschafft.

    Mit etwas Code is dem Script vom Mitleser, und simplem CSS.

    Eine reine JS Lösung ginge bestimmt auch, geht aber über meine Fähigkeiten hinaus; aber nicht mal der Fragesteller will noch antworten, also wird's wohl dabei bleiben. ;)

    In dem Beispiel ist es nur die Kurzversion mit 1 Icon (Ordnerzähler - Icon - Linkzähler), aber das Prinzip lässt sich auch relativ einfach für unsere Versionen umsetzen.

    Die relevanten Zeilen hier sind 84-87, und 138 -140.

    JavaScript
    // JavaScript Document
    // BookmarkCount_Modx.uc.js - modified for element separation
    // Author BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536
    // Endor Repository Link Source https://github.com/Endor8/userChrome.js/blob/master/Firefox%20115/BookmarkCount.uc.js
    // Modified by Mira_Belle / Horstmann / Forum members
    // Single Icon Version / hide stuff if count 0
    
    
    
    (function() {
    
        if (!window.gBrowser) return;
        
        setTimeout(function() {
            setFunction();
        },50);
    
    
        //Custom icon1 in profile/chrome/icons folder
        //Option to use Firefox icon
    
        let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'))
        let icon1 = "YourFolderIcon.png"                                  // your custom icon
        let icon2 = "chrome://global/skin/icons/folder.svg"        // folder icon by Firefox
    
        function setFunction() {
    
            const css =`
    
                /***  Fonts  ***/
    
               :root {
                    --counter_fonts: "Droid Sans Mono", "SF Mono", "Andale Mono", Consolas, "Lucida Console", "Courier New", monospace;
                    /*--counter_fontsize: 11px;*/    /* un-comment to change font size / weight */
                    /*--counter_fontweight: 800;*/
                }
    
                /* Fix container content vertical centering for FCB */ 
                hbox.menu-accel-container.countClass1 {
                    align-items: center !important;
                }
    
                /***  Counters  ***/
    
                /* Counter Folder */
                .countClass::before {
                    content: attr(data-value1) !important;
                    font-family:  var(--counter_fonts) !important;
                    font-size: var(--counter_fontsize) !important;
                    font-weight: var(--counter_fontweight) !important;
                    /*color: red !important;*/                                                 /*  text1 color */
                    margin-left: 16px !important;   /* minimum distance left narrow windows */
                }
    
                /* Icon  */
                .countClass label {
                    content: "";
                    background-image: url(${profilePath}/${icon1});             /* custom icon */
                    /*background-image: url(${icon2});*/                      /* Firefox folder icon */
                    background-repeat: no-repeat;
                    background-size: 16px;                                        /* icon size 16px max */
                    background-position: center;
                    margin-left: 4px !important;                        /* distance counter1 ->  icon */
                    margin-right: 4px !important;                       /* distance icon -> counter2 */
                    height: 16px;
                    width: 16px;
                    /*fill: red;*/                                    /* .svg icon color / opacity if applicable */
                    /*stroke: green;*/
                    fill-opacity: 1;
                }
    
                /* Counter 2 */
                .countClass::after {
                    content: attr(data-value2) !important;
                    font-family:  var(--counter_fonts) !important;
                    font-size: var(--counter_fontsize) !important;
                    font-weight: var(--counter_fontweight) !important;
                    /*color: red !important;*/                                           /*  text2 color */
                    margin-right: 4px !important;                              /* distance to arrow  */
                }
    
    
                /* Hide icon if menuCount 0 */
                .countClass[data-value1$="\xa0"] label {
                     opacity: 0;
                }
    
            `;
    
            const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
            const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
            sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
            let bmbMenu = document.getElementById('bookmarks-menu-button');
            let bookMenu = document.getElementById('bookmarksMenu');
            let persToolBar = document.getElementById('PersonalToolbar');
            
            if(bmbMenu)
                bmbMenu.addEventListener('popupshowing', onPopupShowing ); 
            if(bookMenu)
                bookMenu.addEventListener('popupshowing', onPopupShowing ); 
            if(persToolBar)
                persToolBar.addEventListener('popupshowing', onPopupShowing ); 
        }
        
        function onPopupShowing(aEvent) {
            
            let popup = aEvent.originalTarget;
    
            for (let item of popup.children) {
                if (item.localName != 'menu' || item.id?.startsWith('history')) {
                    continue;
                }    
                setTimeout(() => {
                  let itemPopup = item.menupopup;
                  itemPopup.hidden = true;
                  itemPopup.collapsed = true;
                  itemPopup.openPopup();
                  itemPopup.hidePopup();
                  let menuitemCount = 0;
                  let menuCount = 0;
                  for (let subitem of itemPopup.children) {
                    if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) {
                      if (subitem.localName == 'menuitem') {
                        menuitemCount++;
                      } else if (subitem.localName == 'menu') {
                        menuCount++;
                      }
                    }
                  }
                  itemPopup.hidden = false;
                  itemPopup.collapsed = false;
                  
                  let label = item.childNodes[3];
                  label.classList.add('countClass');
    
                  // menuCount / menuitemCount 0 -> replace with space
                  if (menuCount == 0) {menuCount ='\xa0';};
                  if (menuitemCount == 0) {menuitemCount ='\xa0';};
    
                  // First counter, 2 digits // Numbers aligned right // use padEnd for left
                  let strCountOut1 = String(menuCount).padStart(2, '\xa0');            // 2 digits
                  label.setAttribute('data-value1', strCountOut1);
    
                  // Second counter, 2/3 digits // Numbers aligned right // use padEnd for left
                  let strCountOut2 = String(menuitemCount).padStart(2, '\xa0');      // 2 digits
                  //let strCountOut2 = String(menuitemCount).padStart(3, '\xa0');    // 3 digits
                  label.setAttribute('data-value2', strCountOut2);
    
    
                }, 100);
            }
        }    
    })();
    Alles anzeigen

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 21. Juli 2023 um 15:35
    Zitat von milupo
    Zitat von Horstmann

    Deins landet im Anpassen Fenster, und muss dann bewegt werden, was zu Kapieren bei mir etwas gedauert hat...

    Ich zitiere: ;)

    Zitat von milupo

    Ich musste das Symbol erst einmal aus dem Anpassen-Fenster holen.

    Hoppla. ;)

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 21. Juli 2023 um 15:05
    Zitat von milupo

    Nein, hier brauchst du das nicht. Es soll ja lediglich eine Seite öffnen. Wie gesagt, bei mir funktioniert es und bei 2002Andreas auch. Wie kopierst du denn? Du solltest das immer mit der Schaltfläche oben rechts im Code-Kasten tun. Nicht einfach den Text mit der Maus kopieren. Dann kopierst du auch das Wort JavaScript und die Zeilennummern und machst das Skript dadurch unbrauchbar.

    Das mit dem Kopieren schaffe ich schon. ;)

    Ich hab's aber trotzdem komplett vertrottelt - dein Script funktioniert perfekt - nur setzen alle meine anderen Scripte mit Buttons die Dinger automatisch in die Navbar, vermutlich mit defaultArea: CustomizableUI.AREA_NAVBAR.

    Deins landet im Anpassen Fenster, und muss dann bewegt werden, was zu Kapieren bei mir etwas gedauert hat... ?( ;)

  • Button um weiteres Profil zu öffnen

    • Horstmann
    • 21. Juli 2023 um 14:35
    Zitat von milupo
    Zitat von Horstmann

    Fehlen da nicht ein paar Dinge in deinem Script?

    Bei mir läuft das so nicht.

    Mein Skript öffnet lediglich about:profiles und soll auch nicht mehr tun. Und es funktioniert bei mir. Deines macht auch nichts anderes.

    Meins ist nicht meins, nur ein abgewandeltes about:addons Script von hier aus dem Forum, genau wie deines im Prinzip, und natürlich öffnet es nur about:profiles.

    Was sollte es auch sonst machen, steht ja sonst nix drin?

    Lesen kann ich ein Script immerhin. ;)

    Nur funktioniert deins eben bei mir überhaupt nicht als Script, wenn ich den Textinhalt rüberkopiere, im Gegensatz zu so ziemlichen allen anderen Scripten.

    Braucht man da nicht irgendwas mit function etc. im Inhalt?

    Wenn's bei dir klappt ist ja gut, bei mir brauchts den extra function usw. Code.

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

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