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

  • Und wenn ihr jetzt noch kurz das Script von Mitleser hier testen könntet

    Das gleiche in grün...

    Meine Skript-Version:

    Vielen Dank! :)

    Hmm; was mir gerade aufgefallen ist, in meinen letzten Scripts gibt's einen Fehler - der aber bei dir, Mitleser und Mira nicht vorhanden ist, also uU nichts ausmacht.
    Sitzt aber an genau der relevanten Stelle.

    Zeilen 286/287, in meinem Script, und dadurch auch auf Endor's Github:

    Code
            if(bookMenu)-
                bookMenu.addEventListener('popupshowing', onPopupShowing );

    Das - nach if(bookMenu)- muss raus... ==> if(bookMenu) ...

    Einmal editiert, zuletzt von Horstmann (4. Juli 2025 um 17:00)

  • Ist auch mit diesem Skript so.

    Danke! :)
    Sind ja ziemlich verschiedene Ansätze, mit dem gleichen Problem, die Frage wäre dann halt wann ist das Problem aufgetreten, oder war es immer schon da?:/
    Wobei dann hätte sich bestimmt schon jemand gemeldet.

    Also, ich kann ja leider nicht die Menüleiste testen, und für mich am Mac konnte sich auch der Bug nie bemerkbar machen.

    Es würde evtl. Sinn machen für Windows User nach einer älteren Version zu suchen, die funktioniert, und dann mit neusten Versionen zu vergleichen, um festzustellen an welchem Punkt der Ärger losging.

    Im Fx Code sehen die IDs etc. ziemlich ähnlich aus, aber die ersten 3 werden offensichtlich anders geladen als die Lesezeichenordner darunter; könnt ja mal die Trennlinie dazwischen rausschmeissen zum Spass. ;)

    Hier ungefähr geht die Diskussion mit den relativ aktuellen Änderungen los, da gibt es Einiges an Code von BrokenHeart , grisu2099 und Mira_Belle , der evtl. die Problematik nicht aufweist. :/

  • Das Problem wird sehr wahrscheinlich durch eine Änderung an dem internen Popup-Aufruf des Lesezeichen-Menüs verursacht. In der Version FF128esr funktioniert es noch, in der aktuellen Release und der Nightly nicht mehr. Hat nichts mit den verschiedenen Skripten oder CSS-Änderungen zu tun. Da ich das Skript nicht verwende, kann ich nicht genau sagen, bei welcher FF-Version die Umstellung erfolgt ist. Ist auch eigentlich egal.

    Folgende Screenshots zeigen den Unterschied zwischen der FF128esr und FF140:

    FF128ers:

    FF140:

    Beide Screenshots sind gemacht worden, bevor das Lesezeichenmenü-Popup erstmalig aufgerufen wurde!

    In FF128esr sind schon alle Verzeichnisse des Lesezeichenmenüs vorhanden, deshalb klappt auch die Berechnung der Lesezeichenanzahl beim ersten Klick..

    In FF140 sind nur die standardmäßigen Haupt-Verzeichnisse vorhanden. Die eigentlichen Lesezeichen(-Verzeichnisse) aber noch nicht.

    In beiden FF-Versionen gibt es ein Attribut hasbeenopened des Menü-Popups, welches gesetzt wird, wenn man erstmalig das Popup aufgerufen hat. Deshalb muss hier ein zweites mal der Button betätigt werde, damit das Skript, so wie es jetzt ist, funktioniert.

    Den Grund sehe ich in einer Optimierung der Speicherplatzes und der Startgeschwindigkeit, da die Lesezeichen erst bei Bedarf (Klicken) einmalig gelesen werden.

    Lösung müsste ich mir noch mal anschauen, wahrscheinlich über Manipulation des Attributs hasbeenopened und dem zwangsweisen Laden der Lesezeichen -Inhalte. Vielleicht hat ja sonst wer noch eine zündende Idee....

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • Test-Skript:

    Beim Lesezeichen-Menü über die Menüleiste sieht es erst mal ganz gut aus...

    Beim Öffnen des Popups über den Lesezeichen-Menü-Button funktioniert es zwar auch, aber das Popup wird erst ganz kurz nach links geöffnet und wieder geschlossen, bevor es dann nach rechts wieder geöffnet wird :/.

    Ich habe zu Testzwecken ein älteres Skript von mir verwendet. Änderungen sind markiert(Zeile 31 und Zeile 33):

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • Test-Skript:

    Beim Lesezeichen-Menü über die Menüleiste sieht es erst mal ganz gut aus...

    Beim Öffnen des Popups über den Lesezeichen-Menü-Button funktioniert es zwar auch, aber das Popup wird erst ganz kurz nach links geöffnet und wieder geschlossen, bevor es dann nach rechts wieder geöffnet wird :/.

    Und wenn du beide hinzufügst?

    JavaScript
            if(bmbMenu)
               bmbMenu.addEventListener('popupshowing', onPopupShowing );
               bmbMenu.addEventListener('popupshown', onPopupShowing );
  • Und wenn du beide hinzufügst?

    Ich vermute mal du meinst:

    JavaScript
            if(bmbMenu) {
               bmbMenu.addEventListener('popupshowing', onPopupShowing );
               bmbMenu.addEventListener('popupshown', onPopupShowing ); 
            }

    Ja, jetzt funktioniert es wie es soll (nach einem Kurztest). Sehr gut...:thumbup:

    PS: Ich glaube zwar, dass es nicht sehr effizient ist, das gleiche Prozedere mehrfach aufzurufen, aber dann muss man halt als "Heimwerker und Bastler" mehr Geld für die entsprechende Hardware hinlegen, dann gleicht sich das wieder aus! ;)

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

    Einmal editiert, zuletzt von BrokenHeart (4. Juli 2025 um 22:36)

  • Und wenn du beide hinzufügst?

    Ich vermute mal du meinst:

    PS: Ich glaube zwar, dass es nicht sehr effizient ist, das gleiche Prozedere mehrfach aufzurufen, aber dann muss man halt als "Heimwerker und Bastler" mehr Geld für die entsprechende Hardware hinlegen, dann gleicht sich das wieder aus! ;)

    Ooups, sorry, ja, genau das. ;)
    Was Schlaueres fällt mir nicht ein - schon gar nicht ohne es testen zu können, sogar wenn ich JS könnte. :/

    PS; Braucht man die Änderung eigentlich unbedingt für den bookmarks-menu-button, weil sie evtl. in der Lesezeichenleiste mitbenutzt wird?

    Das hier reicht nicht, mit Anpassung nur für bookmarksMenu?

    2 Mal editiert, zuletzt von Horstmann (4. Juli 2025 um 23:14)

  • Oh, es geht!

    Code
            if(bmbMenu)
                bmbMenu.addEventListener('popupshown', onPopupShowing );  //--- 'popupshowing' -> 'popupshown' 
            if(bookMenu)
                bookMenu.addEventListener('popupshown', onPopupShowing ); //--- 'popupshowing' -> 'popupshown'
            if(persToolBar)
                persToolBar.addEventListener('popupshown', onPopupShowing );  //--- 'popupshowing' -> 'popupshown'

    Bei erstmaligem Aufruf der Lesezeichen werden alle Counter angezeigt!


    Mit ...

    Code
            if(bmbMenu)
            	bmbMenu.addEventListener('popupshowing', onPopupShowing );
                bmbMenu.addEventListener('popupshown', onPopupShowing );  //--- 'popupshowing' -> 'popupshown' 
            if(bookMenu)
                bookMenu.addEventListener('popupshown', onPopupShowing ); //--- 'popupshowing' -> 'popupshown'
            if(persToolBar)
                persToolBar.addEventListener('popupshowing', onPopupShowing ); 

    ... wird dann gar nichts mehr angezeigt.

    Komplettes Skript inkl. Icons?


    Und die Französin sagt:

    Zitat

    Der Unterschied zwischen den beiden Event-Listenern in JavaScript besteht im Zeitpunkt, zu dem das Event ausgelöst wird:

    1. popupshowing: Dieses Event wird ausgelöst, wenn das Popup-Menü gerade dabei ist, angezeigt zu werden, aber noch nicht vollständig sichtbar ist. Es ist ein Event, das den Beginn des Anzeigeprozesses signalisiert. Dies kann nützlich sein, wenn du bestimmte Aktionen ausführen möchtest, bevor das Menü vollständig sichtbar ist, wie z.B. das Vorbereiten von Inhalten oder das Durchführen von Initialisierungen.
    2. popupshown: Dieses Event wird ausgelöst, nachdem das Popup-Menü vollständig angezeigt wurde. Es signalisiert das Ende des Anzeigeprozesses. Dies ist nützlich, wenn du Aktionen ausführen möchtest, die darauf warten müssen, dass das Menü vollständig sichtbar ist, wie z.B. das Fokussieren eines bestimmten Elements im Menü oder das Ausführen von Animationen.

    Zusammengefasst:

    • popupshowing: Wird ausgelöst, wenn das Popup-Menü gerade dabei ist, angezeigt zu werden.
    • popupshown: Wird ausgelöst, nachdem das Popup-Menü vollständig angezeigt wurde.

    Je nach Anwendungsfall kannst du den geeigneten Event-Listener wählen, um sicherzustellen, dass deine Aktionen zum richtigen Zeitpunkt ausgeführt werden.

    Und nach BrokenHearts Erklärung ist nun auch klar, warum es popupshonwn heißen muss.


    Bringt hier keine Änderung... :/

    Nanana, Cache geleert?

    Mit <3lichem Gruß

    Mira

    5 Mal editiert, zuletzt von Mira_Belle (4. Juli 2025 um 23:22) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.

  • Bei erstmaligem Aufruf der Lesezeichen werden alle Counter angezeigt

    Frage: Wenn du das Lesezeichen-Menü über den Lesezeichen-Menü-Button öffnest, wird dann kurzfristig das Popup an der falschen Stelle dargestellt, oder nicht? Erklärung in #526.

    ... wird dann gar nichts mehr angezeigt.

    Du hast auch die Klammern vergessen:

    JavaScript
            if(bmbMenu) {
               bmbMenu.addEventListener('popupshowing', onPopupShowing );
               bmbMenu.addEventListener('popupshown', onPopupShowing ); 
            }

    Und die Französin sagt:

    Na ja, die französische KI-Zofe beschreibt eigentlich nur nochmal genau das, was auch die Bezeichnungen der Eventlistener schon weitestgehend aussagen. :)

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

    2 Mal editiert, zuletzt von BrokenHeart (4. Juli 2025 um 23:26) aus folgendem Grund: Ein Beitrag von BrokenHeart mit diesem Beitrag zusammengefügt.

  • BrokenHeart
    Mir war, ist der Unterschied von popupshowing vs. popupshown nicht klar gewesen!

    Du hast auch die Klammern vergessen:

    Korrigiert!

    JavaScript
        if(bmbMenu) {
          bmbMenu.addEventListener('popupshown', onPopupShowing );  //--- 'popupshowing' -> 'popupshown'
          }
        if(bookMenu) {
          bookMenu.addEventListener('popupshown', onPopupShowing ); //--- 'popupshowing' -> 'popupshown'
          }
        if(persToolBar) {
          persToolBar.addEventListener('popupshown', onPopupShowing ); //--- 'popupshowing' -> 'popupshown'
        }

    So funktioniert es. Auch wenn ich die Lesezeichen über den Button aufrufe!


    Nachtrag

    Dieser komische doppelte Aufruf ist bei mir nicht nötig,
    aber auch so funktioniert es.

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (4. Juli 2025 um 23:33) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.

  • Das hier reicht nicht, mit Anpassung nur für bookmarksMenu?

    Nein das reicht nicht. Das hatte ich schon vorher getestet.

    Ist eben die gleiche Optimierung wie in der Menüleiste. Mozilla geht wohl (zu Recht) davon aus, dass man nicht beide Möglichkeiten gleichzeitig nutzt, sondern sich für eine Aufruf-Methode entscheidet und daher werden beide getrennt angesprochen.


    Dieser komische doppelte Aufruf ist bei mir nicht nötig,
    aber auch so funktioniert es.

    Interessant. Muss mal schauen, ob nur bei mir dieser merkwürdige Effekt auftritt. Vielleicht mal ohne meine 'userChrome.css' testen :/.

    Danke für den Hinweis :thumbup:.

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

    2 Mal editiert, zuletzt von BrokenHeart (4. Juli 2025 um 23:40) aus folgendem Grund: Ein Beitrag von BrokenHeart mit diesem Beitrag zusammengefügt.

  • BrokenHeart, ich habe dieses Script angepasst und sehe keine Probleme (Linux), auch nicht mit #bookmarks-menu-button oder #bookmarksMenuPopup (oder erkenne ich das Problem nicht?).

    Die Icons befinden sich in diesem Beitrag.

    Edit (05.07.25): doppelten EventListener gelöscht; funktioniert auch so.

    Dieser Beitrag ist ohne Hilfe einer 'KI' entstanden.

    3 Mal editiert, zuletzt von Mitleser (6. Juli 2025 um 22:21) aus folgendem Grund: EventListener gelöscht

  • Mitleser Es ist durchaus möglich, dass dieses Problem mit dem verzögertem Anzeigen der Counter
    [Anzahl der beinhaltenden Ordner sowie aus der Anzahl der beinhaltenden Lesezeichen],
    bzw. erst beim zweiten Mal öffnen des betreffenden Popups (z.B. Lesezeichen), nur auf Windowssystemen auftritt.

    Scheinbar besteht die Lösung darin, das "Event" 'popupshowing' in 'popupshown'.

    Das "Event" auszulösen, bevor und nachdem das Popup-Menü vollständig angezeigt wird,
    macht meiner Meinung keinen Sinn.


    Und BrokenHart hat hier ja recht gut erklärt, warum das "Event" erst nach dem vollständigen Anzeigen
    des Menüs ausgelöst werden sollte.

    In beiden FF-Versionen gibt es ein Attribut hasbeenopened des Menü-Popups, welches gesetzt wird, wenn man erstmalig das Popup aufgerufen hat. Deshalb muss hier ein zweites mal der Button betätigt werde, damit das Skript, so wie es jetzt ist, funktioniert.

    Da es hier um Millisekunden geht, so denke ich, sieht man das mit der Verzögerung nicht.
    Man bekommt es einfach nicht mit.

    Mit <3lichem Gruß

    Mira

    2 Mal editiert, zuletzt von Mira_Belle (5. Juli 2025 um 08:38) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.

  • Dieser komische doppelte Aufruf ist bei mir nicht nötig,
    aber auch so funktioniert es.

    Interessant. Muss mal schauen, ob nur bei mir dieser merkwürdige Effekt auftritt. Vielleicht mal ohne meine 'userChrome.css' testen :/.


    Das "Event" auszulösen, bevor und nachdem das Popup-Menü vollständig angezeigt wird,
    macht meiner Meinung keinen Sinn.

    Und BrokenHart hat hier ja recht gut erklärt, warum das "Event" erst nach dem vollständigen Anzeigen
    des Menüs ausgelöst werden sollte.

    In beiden FF-Versionen gibt es ein Attribut hasbeenopened des Menü-Popups, welches gesetzt wird, wenn man erstmalig das Popup aufgerufen hat. Deshalb muss hier ein zweites mal der Button betätigt werde, damit das Skript, so wie es jetzt ist, funktioniert.

    Da es hier um Millisekunden geht, so denke ich, sieht man das mit der Verzögerung nicht.
    Man bekommt es einfach nicht mit.

    Hier am Mac, für den #bookmarks-menu-button / Lesezeichen-Menü-Button:

    Die Breite des Haupt-Popups ändert sich jeweils beim ersten Öffnen nach Neustart oder in einem neuen Fenster (falls das Popup noch nicht die erlaubte max-width des Fensters besitzt).

    Edit: hat dieses Popup schon die Maximalbreite bevor die Zählereinträge beim Öffnen dazugefügt werden, etwa durch einen sehr langen Link oder Foldernamen (Anhang), gibt es hier kein Problem wie in #2 (s. unten), weil die Zählereinträge die Breite eh nicht mehr ändern können.

    Danach, und für Submenus bleibt die Grösse, vermutlich weil sie mit hasbeenopened festgelegt bleibt; das Attribut sitzt hier am Hauptpopup, ID: #BMB_bookmarksToolbarPopup.

    ===>

    Hat man noch weitere CSS für Positionierung, Grösse etc. für dieses Hauptpopup, könnte das weitere Anzeigeprobleme mit sich bringen, wie von Brokenheart beschrieben.

    2 Mal editiert, zuletzt von Horstmann (5. Juli 2025 um 10:25)

  • Mh. :/

    Also, ich habe keine Probleme mehr!
    Und ich habe nicht nur CSS für die Breite und Farben und so weiter,
    sondern ja auch noch CSS, um Symbole vor die "Labels" zu bekommen!

    Es funktioniert super mit Version #2!

    Mit <3lichem Gruß

    Mira