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

Beiträge von BrokenHeart

  • In diesem Script NACH dem Text "Anzahl Ordner / Anzahl Links." bzw. "Anzahl Ordner / Anzahl Link(s) -> Link(s) in Tab(s) öffnen" einen Separator setzen.

    • BrokenHeart
    • 17. Juli 2023 um 08:34

    Dann hast du vermutlich irgendwas selbst "verbastelt", da ja im Skript der Separator extra eingefügt wird:

  • Unerwünschte Nachricht beim Starten

    • BrokenHeart
    • 13. Juli 2023 um 20:29

    Hallo,

    du könntest das hier mal durchlesen:

    https://helpcenter.getadblock.com/hc/en-us/articles/9738467137811-Seeing-AdBlock-s-payment-page-more-than-once-or-AdBlock-settings-are-changing

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 12. Juli 2023 um 16:04
    Zitat von pirate man

    Sieht jetzt deutlich anders aus :)

    :thumbup:

    Zitat von pirate man

    Wenn man jetzt noch das + für einen neuen Tab noch ein wenig anpassen könnte größenmäßig, wäre ich endgültig zufrieden :)

    Folgenden Code noch an die CSS-Anpassungen anhängen. Sollte die Default-Größe sein. Kannst du dir dann individuell einstellen.

    CSS
        #TabsToolbar #tabs-newtab-button > image {
            min-height: 0 !important;
            max-height: 20px !important;
            min-width: 0 !important;
            max-width: 20px !important;
         }
  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 12. Juli 2023 um 11:50
    Zitat von pirate man

    Ich bin mir allerdings nicht sicher, ob das so passt, denn irgendwie merke ich keinen Unterschied ob das .css File vorhanden ist oder nicht.

    Es scheint nicht so, dass bei dir die Einträge in der 'userChrome.css' ausgewertet werden, da die Tabs noch einen zusätzlichen Rahmen und Schatten besitzen.

    Steht bei dir unter 'about:config' toolkit.legacyUserProfileCustomizations.stylesheets auf true?

    Befindet sich die Datei im richtigen Profilordner? Falsche Schreibweise bzw. falsches Suffix (.txt)->(.css)?

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

    • BrokenHeart
    • 11. Juli 2023 um 22:09

    @alle Individuellen Anpasser oder angepassten Individualisten:

    😁👍

    "Yeah, that's the spirit...", in diesem Unterforum.

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 11. Juli 2023 um 22:03

    Ich weiß genau, was du meinst. Aber der Grund, warum es hier anders gelöst wurde, ist folgender: Bei der einzeiligen (eindimensionalen) Anzeige der Tableiste müssen nur die sichtbaren Tabs auf einer Linie verschoben werden. Je nachdem, von wo ich den Tab nehme, entweder nach rechts oder nach links, um diese Lücke zu erzeugen. Bei der mehrzeiligen (2-dimensionalen) Anzeige muss ich auch die sichtbaren Tabs berücksichtigen, die oberhalb und unterhalb des 'Drop-Ziels' liegen. Auch mit dem ständigen Refresh und dem Scrollen könnte es dann Probleme geben. So hab ich nur einen Indikator und einen Thumb mit dem Screenshot für den selektierten Tab und muss mich darum nicht kümmern.

    Das heißt natürlich absolut nicht, dass es nicht so funktionieren kann, wie es dir vorschwebt, aber ich werde mir sicherlich nicht die Mühe machen, so etwas in das Skript einzubauen oder Hilfestellungen dazu geben. Einmal, weil ich den Code für das Drag&Drop von 'alice0775' übernommen habe und bis auf ein paar Anpassungen, bisher noch nichts daran geändert habe, weil er ja auch bis jetzt wunderbar funktioniert hat. Außerdem hatte ich ja schon öfters gesagt, dass ich an diesem Skript nur noch Fehlerbehebung betreiben möchte und keine neuen Features mehr einbaue. Und dein Anliegen hat ja offensichtlich - wenn überhaupt - nur einen rein optischen Nutzen. Ich frage mich sowieso, was dich an der jetzigen Lösung stört...? :/

    Ansonsten musst du ab Zeile ~1157 selber tätig werden. Aber du solltest dich dafür nicht nur gut mit JavaScript auskennen, sondern dich auch mit den Interna des Firefox beschäftigt haben...

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

    • BrokenHeart
    • 10. Juli 2023 um 20:29
    Zitat von FuchsFan

    Und das sagst Du jetzt nicht, wie Du das da hin gezaubert hast.

    Doch, natürlich, aber da ist nix mit Zauberei oder Voodoo. Das ist so trivial, dass ihr euch mit der flachen Hand gegen die Stirn schlagen werdet!

    Hier die "Wunder"-Zeile 8| :

    let strCountOut = "📁" + String(menuCount).padEnd(2, '\xa0') + "⭐" + String(menuitemCount).padEnd(3, '\xa0');

    Die Emojis/Icons können z.B. direkt in den Editor (NP++) über [Windows-Taste]+[.] in den Code kopiert werden.

    Damit alle Abstände gleich bleiben, muss im CSS Teil natürlich ein 'monospace'-Font verwendet werden z.B. 'Consolas' etc.:

    CSS
    .countClass::after {
                    content: attr(data-value); 
                    font-family:  Consolas, "Lucida Console", "Courier New", monospace;
                    font-size: 11px;
                    font-weight: 900;
                    color: rgb(100,200,255);
                }

    Das ist alles... :)

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

    • BrokenHeart
    • 10. Juli 2023 um 17:55
    Zitat von Endor

    Sollte sich das auf mich beziehen,

    Nein! Damit meinte ich den Header den Dharkness gepostet hat. Deswegen hatte ich ihn auch vorher zitiert....

    Bei deinem Skript ist alles in Ordnung... :)

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

    • BrokenHeart
    • 10. Juli 2023 um 17:45
    Zitat von Endor

    Habe ich jetzt hoch geladen:

    Danke... :thumbup: .

    Den Namen finde ich gut, da er mit 'Bookmark' beginnt und das wäre bei einer Sortierung und beim Suchen eben das primäre Kriterium.

    Btw: Bei mir ist der Name für das Skript immer noch 'neu 1.js'. Das ist das, was der NP++ bei einer neuen Datei vorgibt: 'neu 1.txt' . Einfach '.txt' durch '.js' ersetzt und gut ist's. Erst wenn ich weiß, ob ich das weiter nutzen möchte, bekommt es einen vernünftigen Namen.

    Zitat von Dharkness

    Bei sieht es jetzt so ↓ aus.

    Nur zur Info: der Link stimmt nicht ganz. Ich würde schon auf die letzte, fehlerbereinigte Version verlinken, nämlich auf den Code in #170:

    Beitrag

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

    […]

    Ich glaube eine Lösung für das Scrollproblem bei überlangen Menüs gefunden zu haben :/ ... bitte mal testen:

    (Quelltext, 72 Zeilen)

    BrokenHeart
    9. Juli 2023 um 21:38

    Hier noch meine Version ;) :

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

    • BrokenHeart
    • 9. Juli 2023 um 21:38
    Zitat von Dharkness

    Im Lesezeichen-Menü bzw. in der Lesezeichensymbolleiste werden über lange Untermenüs leider automatisch ans Ende des Untermenüs gescrollt.

    Ich glaube eine Lösung für das Scrollproblem bei überlangen Menüs gefunden zu haben :/ ... bitte mal testen:

    JavaScript
    (function() {
    
        if (!window.gBrowser)
            return;
        
        setTimeout(function() {
            setFunction();
        },50);
    
        function setFunction() {
    
            const css =`
                .countClass::after {
                    content: attr(data-value); 
                    color: red;
                }
            `;
    
            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.menu-iconic-text
      
                  label.classList.add('countClass');
                  let strCountOut = "  (" + menuCount + "/" + menuitemCount + ")"
                  label.setAttribute('data-value', strCountOut);
    
                }, 100);
            }
        }
        
    })();
    Alles anzeigen
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • BrokenHeart
    • 9. Juli 2023 um 16:57
    Zitat von Boersenfeger

    ..als Verursacher konnte ich dieses zusätzliche Script verantwortlich machen:

    Das war ja das alte Skript, was dann noch parallel dazu lief. Da verwundert es nicht, dass dann die Zahlenangaben auch doppelt im Popup stehen... ;)

    Zitat von Endor

    Darf ich diese Version bei Github hoch laden?

    Hallo Endor,

    natürlich, sehr gerne... :thumbup:


    Zitat von Dharkness

    Im Lesezeichen-Menü bzw. in der Lesezeichensymbolleiste werden über lange Untermenüs leider automatisch ans Ende des Untermenüs gescrollt.

    Da muss ich jetzt auch leider sagen, dass das wirklich ein 'Showstopper' ist :(. Ich habe auch ein paar sehr große Verzeichnisse und dieses Verhalten würde mich auf die Dauer schon nerven. Der Grund ist, dass alle Child-Popups (also die Unterverzeichnisse)

    kurz geöffnet werden um die jeweiligen Eigenschaften (Menu/Menuitem) auszulesen und anzuzeigen.

    Eine Lösung dafür habe ich momentan auch nicht. Aber die gesamte Lesezeichen-Struktur, mit allen Informationen, ist ja bekannt und entweder schon direkt im Speicher oder über ein SQL-Select über die 'places.sql' zu erreichen. Vielleicht gibt es da noch eine bessere Lösung, als alle Popups einmal zu öffnen und damit das Scrollproblem zu verursachen? :/

  • Script für Download-Button ändern

    • BrokenHeart
    • 9. Juli 2023 um 09:17

    Ich habe noch den 'unload' Event aus dem Code entfernt, da er eh nicht aufgerufen wird:

    JavaScript
    //Author @aborix
    
    (function() {
    
      if (window.__SSi != 'window0')
        return;
    
      Downloads.getList(Downloads.ALL)
      .then(list => list.addView(
        { onDownloadAdded: () =>
            Services.wm.getMostRecentBrowserWindow().document.getElementById('downloads-button').click()
        }
      ));
    
    })();
    
    //Author @BrokenHeart
    
    (function() {
    
      const closePanelAfter = 5000; //Zeit in ms bis Downloadpanel sich wieder schließt
    
      if (!window.gBrowser){
            return;
      }
    
      var DownloadStopped = {
        _summary: null,
    
        init: function() {
            if (!this._summary) {
              Downloads.getSummary(Downloads.ALL).then(summary => {
                this._summary = summary;
                return this._summary.addView(this);
              }).then(null, console.error);
            }
        },
        
        onSummaryChanged: function () {
            ChromeUtils.import("resource://gre/modules/Services.jsm");
            if (!this._summary)
                return;
            if (this._summary.allHaveStopped) {
                            
                let downloadspanel  = document.getElementById('downloadsPanel');
                
                setTimeout(function() 
                {
                    downloadspanel.hidePopup();
                }, closePanelAfter );
            }
            
        },
        
      }
    
      DownloadStopped.init();
           
    
    })();
    Alles anzeigen
  • Script für Download-Button ändern

    • BrokenHeart
    • 8. Juli 2023 um 23:09
    Zitat von 2002Andreas

    Alle Achtung, das funktioniert einwandfrei :thumbup:

    Ja, sieht erst mal so ganz "funktionstüchtig" aus... :)

    Zitat von 2002Andreas

    Ich habe beide Skripte in eine Datei dazu gepackt:

    :thumbup:

    Zitat von FuchsFan

    Wieviele kann ich davon spenden.

    "Spendier" dir doch einfach selbst so ein kühles 🍺 oder 🍻 - Prost! :)

  • Script für Download-Button ändern

    • BrokenHeart
    • 8. Juli 2023 um 22:27
    Zitat von 2002Andreas

    Evtl. fällt ja BrokenHeart etwas dazu ein, wenn er sich vom gestriegen Stress mit dem anderen Skript, etwas erholt hat ;)

    Zitat von FuchsFan

    Auch ich hoffe, dass er sich erholt davon, aber er hat nicht aufgegeben. Prima! :thumbup:

    Ja, danke der Nachfrage! Eine Hopfenkaltschale hat dann noch für einen erholsamen Schlaf gesorgt... :)

    Zitat von 2002Andreas

    Aber bei einem Download muss der ja erst beendet sein, und sich dann das Popup schließen.

    Richtig und vor allem muss auch solange gewartet werden, bis ALLE Downloads abgeschlossen/beendet sind.

    Die ganze Materie ist wirklich kompliziert (für mich!), da man es hier mit "verketteten Versprechungen bei asynchronen Callbacks" zu tun hat 8o =O . Da das wirklich harter Stoff ist (für mich!), habe ich mir die Teile, welche ich für notwendig erachtet habe, aus anderen Quellen "zusammengesucht". Aber es funktioniert (hoffe ich!)...


    Das Skript wird zusätzlich ausgeführt, ersetzt also nicht das DownloadFenster-Skript. :!:

    Bitte wirklich gut testen, bevor man es dauerhaft einsetzt...

    JavaScript: CloseDownloadPanel.uc.js
    (function() {
    
      const closePanelAfter = 5000; //Zeit in ms bis Downloadpanel sich wieder schließt
    
      if (!window.gBrowser){
            return;
      }
    
      var DownloadStopped = {
        _summary: null,
    
        init: function() {
            if (!this._summary) {
              Downloads.getSummary(Downloads.ALL).then(summary => {
                this._summary = summary;
                return this._summary.addView(this);
              }).then(null, console.error);
            }
           
           window.addEventListener("unload", this, false);
        },
        
        uninit: function() {
            window.removeEventListener("unload", this, false);
            if (this._summary) {
                this._summary.removeView(this);
            }
        },
            
        handleEvent: function(event) {
            switch (event.type) {
              case "unload":
                    this.uninit();
                break;
            }
        },
        
        onSummaryChanged: function () {
            ChromeUtils.import("resource://gre/modules/Services.jsm");
            if (!this._summary)
                return;
            if (this._summary.allHaveStopped) {
                            
                let downloadspanel  = document.getElementById('downloadsPanel');
                
                setTimeout(function() 
                {
                    downloadspanel.hidePopup();
                }, closePanelAfter );
            }
            
        },
        
      }
    
      DownloadStopped.init();
           
    
    })();
    Alles anzeigen
  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • BrokenHeart
    • 8. Juli 2023 um 10:25
    Zitat von J87

    ist es eigentlich möglich, wenn man zwar 3 Tabreihen habe, dann aber nur immer zwei Reihen zu scrollen?

    Nein, das ist so nicht möglich. Was du aber über die UserSettings einstellen kannst ist, von seitenweises auf zeilenweises Scrollen umzustellen: var bPageScroll = false;.

    Neue Features werde ich in diese Version nicht mehr einbauen...

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

    • BrokenHeart
    • 7. Juli 2023 um 19:36
    Zitat von omar1979

    Dieser Script im Beitrag: #116 funkt mit diesem Button nur, wenn ich den Button im Menu-Leiste ganz oben oder auf dem Lesezeichen-Symbolleiste habe. Sonst funkts nirgends.

    Keine Ahnung wie du das genau meinst. Aber das Skript mit dem Lesezeichen-Button funktioniert sogar in der Statusleiste vom Firefox... :/

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

    • BrokenHeart
    • 7. Juli 2023 um 19:22
    Zitat von Horstmann

    Vielen Dank für den ganzen Aufwand, and sorry dass ich die Konfusion angeregt habe... :whistling:

    Nein, warum denn? Ganz im Gegenteil: Es wäre ohne diesen Button, der ja Standard ist, einfach nicht komplett gewesen. Daher von mir nochmal "Danke". :thumbup: Und an die Überprüfung auf NULL sollte man sich ja grundsätzlich und immer gewöhnen... ;)

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

    • BrokenHeart
    • 7. Juli 2023 um 18:44

    Ich glaube doch ein Fehler meinerseits. Wenn der Lesezeichen-Button überhaupt nicht vorhanden ist bzw. eingefügt wurde, dann ist das entsprechende Objekt natürlich auch NULL und es wird eine Exception geschmissen.

    Hier der geänderte Code:

    JavaScript
    (function() {
    
        if (!window.gBrowser)
            return;
        
        setTimeout(function() {
            setFunction();
        },50);
    
        function setFunction() {
    
            const css =`
                .countClass::after {
                    content: attr(data-value); 
                    color: red;
                }
            `;
    
            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.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++;
                      }
                    }
                  }
                  
                  let label = item.childNodes[3]; //label.menu-iconic-text
      
                  label.classList.add('countClass');
                  let strCountOut = "  (" + menuCount + "/" + menuitemCount + ")"
                  label.setAttribute('data-value', strCountOut);
    
                }, 100);
            }
        }
        
    })();
    Alles anzeigen
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • BrokenHeart
    • 7. Juli 2023 um 18:25
    Zitat von Horstmann

    Funktioniert hier genauso gut wie die Versionen davor bei mir auch funktioniert haben, egal wie kopiert und eingefügt. :/

    Ist hier ebenfalls so...

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

    • BrokenHeart
    • 7. Juli 2023 um 18:09

    Nochmal als Test direkt von der bei mir funktionierenden Version aus NP++ kopiert:

    JavaScript
    (function() {
    
        if (!window.gBrowser)
            return;
        
        setTimeout(function() {
            setFunction();
        },50);
    
        function setFunction() {
    
            const css =`
                .countClass::after {
                    content: attr(data-value); 
                    color: red;
                }
            `;
    
            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');
            
            bmbMenu.addEventListener('popupshowing', onPopupShowing ); 
            bookMenu.addEventListener('popupshowing', onPopupShowing ); 
            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.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++;
                      }
                    }
                  }
                  
                  let label = item.childNodes[3]; //label.menu-iconic-text
      
                  label.classList.add('countClass');
                  let strCountOut = "  (" + menuCount + "/" + menuitemCount + ")"
                  label.setAttribute('data-value', strCountOut);
    
                }, 100);
            }
        }
        
    })();
    Alles anzeigen

Unterstütze uns!

Jährlich (2026)

32,8 %

32,8% (213,31 von 650 EUR)

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