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

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 14. September 2023 um 22:59

    BrokenHeart

    Habe ich ausprobiert!

    Und ja, da legt sich über die Seite so ein "Schleier" in dessen Mitte dieses "Gelb-Grüne-Ding, mit rotem Rand.

    Nur das ist immer nach einem Neustart des Firefox da, und nicht nur, wenn ich über ein bestimmtes Areal hovere!

    Auch verschwindet es, wenn ich draufklicke und kommt nicht wieder, wenn ich über das bestimmte Areal hovere!

    Du hast es in einem Skript "eingebaut"?

    Zeig mir doch bitte wie.


    Zitat von Mitleser

    z.B. so ähnlich:

    ...

    ist nur als Bastelvorlage gedacht

    Habe ich gemacht!Wenn man nun noch

    alert(

       t10+' Berlin\n'

       +t15+' Lagos\n\n'

       +t20+' New York\n'

       +t30+' Moskau\n\n'

       +t40+' Hongkong\n'

       +t50+' Sydney')

    löscht erscheint nur noch das Demo.

    Nur so hatte ich es nicht gemeint :!:

    Hovere mal über den Button.

    Was erscheint da?

    So ein kleines Hinweisfenster!

    Und was steht da bei Deinem Skript drinen?

    Internationale Uhrzeiten anzeigen

    Und was hätte ich gerne umgesetzt?

    Dass da drinnen seht

    Vielleicht habe ich mich nicht richtig ausgedrückt, aber nun sollte es klar sein!

    Leider komme ich auch nicht mit diesen beiden Codeschnipsel weiter.

    1.

    JavaScript
          const element = document.getElementById('time-button');
          
          element.addEventListener('mouseover', () => {
              // Zeige das Menü an, z.B. durch Ändern von display oder visibility
              element.style.display = 'block';
          });
          
          element.addEventListener('mouseout', () => {
              // Verberge das Menü, wenn der Mauszeiger das Element verlässt
          //    element.style.display = 'none';
              element.style.display = 'block';          
          });
    Alles anzeigen

    Eventuell an falscher Stelle eingefügt. :/

    und

    2.

    JavaScript
          const popupArea = document.getElementById("time-button");
    
          popupArea.addEventListener("mouseover", function() {
              const popupWindow = window.open("", "Popup", "width=200,height=100");
              const currentDate = new Date();
              const popupContent = `Datum: ${currentDate.toLocaleDateString()} Uhrzeit: ${currentDate.toLocaleTimeString()}`;
              popupWindow.document.write(popupContent);
          });

    Wahrscheinlich das Gleiche.

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 14. September 2023 um 22:50
    Zitat von BrokenHeart

    Den Dialog-Code hat Sören doch hier gepostet (und in der Konsole ausprobiert):

    Beitrag

    RE: Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    […]

    Funktioniert das im Script nicht? Da ich keine Scripts nutze, kann ich es nicht testen. Über die Konsole funktioniert das zumindest, das wird im DOM des Browsers eingefügt.

    (Quelltext, 18 Zeilen)

    Das sieht so nicht hübsch aus und macht nichts Sinnvolles, sondern soll nur die grundsätzliche Idee verständlich machen.



    […]

    Wir haben ja nicht wirklich fast 65.000 Mitglieder. Klar, so viele sind registriert, aber die meisten haben sich einmalig (oder auch ein paar Mal) wegen eines Problems…
    Sören Hentzschel
    14. September 2023 um 10:30

    und ich habe es dann in einem Skript getestet(siehe Edit in #25) und es läuft.

    Dürfte doch genau das sein, was du haben möchtest.. :/

    D.h. ich brauche einfach nur diesen Code irgendwo in das JavaScript reinhängen?

    Irgendwie stehe ich gerade völlig auf dem Schlauch!

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 14. September 2023 um 21:58

    ;(

    Nunja, ich finde, dieser Thread nimmt nun doch eine komische Wendung an.

    Es ist ja nicht falsch, was ihr schreibt, aber ich könnte wirklich etwas Hilfe gebrauchen.

    Bitte.

    Wie gestalte ich das Aussehen eines "Popups" per CSS, dass es so noch gar nicht gibt?

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 14. September 2023 um 13:38

    :/

    Ich brauche eine eindeutige ID für die von mir erwähnte Anzeige.

    In dem Skript ist ja gar keine!

    Dann müsste CSS-Code rein, der festlegt wie das Popup aussehen soll und das es anfänglich ausgeblendet sein soll.

    Das sollte irgendwie mit display: none; oder visibility: hidden; umzusetzen sein.

    Und in das Skript muss dann noch Code, um auf das Hover-Ereignis zuzugreifen und das Menü bei Bedarf anzuzeigen.

    Einen Codeschnipsel dafür habe ich im Netz gefunden!

    Könnte so aussehen:

    JavaScript
    const element = document.getElementById('your-element-id');
    
    element.addEventListener('mouseover', () => {
        // Zeige das Menü an, z.B. durch Ändern von display oder visibility
        element.style.display = 'block';
    });
    
    element.addEventListener('mouseout', () => {
        // Verberge das Menü, wenn der Mauszeiger das Element verlässt
        element.style.display = 'none';
    });
    Alles anzeigen

    Nur, wie setze ich das mit der ID um? :/

    HA!

    Habe mich geirrt, hat doch eine ID :!:

    #titlebar-clock-display

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 14. September 2023 um 13:04
    Zitat von 2002Andreas

    Daran ändert sich doch nichts, nur weil du die CSS Codes in Skripte packst :/

    Außerdem, Skripte nutzen zu können bedarf einer größeren Vorbereitung als CSS Codes zu nutzen.

    Und wenn ein Skript nicht funktioniert stellt sich die Frage, liegt es am Skript oder dem CSS Code darin.

    Ich nutze hier 62 CSS Dateien und 41 Skripte.

    Alle CSS Dateien haben einen Namen/Bezeichnung womit man/ich sofort erkennen kann, was damit verändert wurde.

    Für mich! gibt es also keinen Grund, meine CSS Codes extra noch in Skripte zu packen. ;)

    PS:

    Aber wie immer...jeder wie er mag :)

    Alles anzeigen

    Ich gebe Dir vollkommen recht, es liegt einzig und alleine an einer sinnvollen Aufteilung.

    Was aber JavaScript angeht, wenn es nicht funktioniert, liegt es fast immer nicht am

    eingebundenen CSS, zumal sich das ja auch ganz einfach testen lässt.

    Einfach rausnehmen oder deaktivieren.

    Und was die Vorbereitung angeht, ich finde, es ist auch nicht komplizierter als die Vorbereitung zur Benutzung von CSS.

    Ok, um JavaScript nutzen zu können, muss man diese Schritte ja auch machen und

    dann kommt das andere Gedöhns auch noch dazu.

    OK, der aufwand ist doch etwas mehr, geb' mich geschlagen, hast ja recht. :D


    Um nochmals auf das Thema zu kommen, ich habe ja das JavaScript für Datums- & Zeitanzeige am Laufen.

    Richtig toll fände ich es, wenn beim "hovern" sich dann ein "tooltip" öffnen täte, wo diverse Uhrzeiten

    anderer zuvor ausgewählter Orte anderer Zeitzonen angezeigt werden würden.

    Ob mir bei diesem Vorhaben jemand helfen könnte?

    Ich finde leider keinen Ansatz um den "tootip" zu missbrauchen,

    vielleicht hänge ich aber gerade auch einem falschen Ansatz hinterher.

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 14. September 2023 um 10:51

    BrokenHeart Alles gut.

    Ich habe mich auch schon gewundert, warum nicht viel öfters JavaScript genutzt wird.

    Man kann damit so viele herrliche Dinge anstellen, und CSS gleich integrieren.

    So hat man dann alles unter einem "Dach und Fach"!

    Ich nutze zig Cascading Style Sheets und verliere recht oft den Überblick, weil ich nicht mehr weis,

    in welcher Datei noch mal der Code für diese oder jene Anpassung steckt.

    Gerade der Code für die ganzen grafischen Anpassungen ist dann doch leider etwas verteilt.

    Zu meinem Glück habe ich ja in weiser Voraussicht alle Symbole in ein JavaScript gepackt,

    was ich aber noch machen muss, auch den Code für ausgeblendete Elemente entweder da

    oder an anderer Stelle "zentral" zusammenzufassen.

    Habe also noch eine Großbaustelle.


    Was den Button zur Datums- und Zeitanzeige angeht, würde ich das Ding gerne umgestalten.

    Es gibt so viele Popups die einen mit m.M. nach unwichtigen Infos versorgen, da kam mir,

    durch .DeJaVu angeregt, die Idee doch eine "Fläche" zu "programmieren", bei der das Popup die

    eigentliche Funktion der Anzeige übernimmt.

    Bedauerlicherweise habe ich da keine Erfahrung und auch im Netz nicht wirklich etwas gefunden.

    Aber auch hier, auf dieser Seite, werden solche Popups generiert und angezeigt!

    Man fahre doch mal über den Benutzernamen!

    Was für ein schönes Popup.

    Oder auf der Startseite des Forums, über ein x-beliebiges Thema in der Rubrik "Unerledigte Themen".

    So in etwa stelle ich mir das vor! Irgendwo auf irgendeiner Leiste ein "Symbol" oder eine "Fläche",

    die Fläche dann mit Bezeichnung (Schriftzug, z.B. Uhrzeit) und wenn man mit der Maus drüberfährt

    geht solch ein Popup auf und zeigt einem die Uhrzeiten, die man vorher ausgewählt hat, an.

    Das wäre was, finde ich.

    Und ich bin mir absolut sicher, dass das geht, nur ich bin noch nicht so weit, dass ich das umsetzen könnte.

    Zitat von Horstmann

    Funktioniert am Mac ohne die Zeile, besteht auch Elchtest! ;)

    Danke für die Rückmeldung.

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 13. September 2023 um 23:23
    Zitat von Mitleser

    Ist ja peinlich, sorry für den falschen Schrägstrich.

    Mir ist noch etwas anderes aufgefallen:

    Ist Zeile 86 ein Überbleibsel aus einem anderen Button?

    Danke für den Hinweis!

    Ja, habe den Code zum Teil aus einem bestehenden anderen Code genutzt.

    Diese Zeile kann gelöscht werden.

    Nur habe ich keinen blassen Schimmer, ob dieses Skript nun auch unter Linux und/oder auf einem Mac läuft.

  • FirefoxUhr / auch bei Vollbild sichtbare Uhr (Tipp!)

    • Mira_Belle
    • 13. September 2023 um 21:26

    Oh meine Güte.

    Ich finde es toll, dass worel auf diese Erweiterung hingewiesen hat,

    und für mich war es eine Herausforderung und Fingerübung.

    Muss ja niemand nutzen :!:

    Wobei, .DeJaVu, Du hast mich da auf eine Idee gebracht.

    Es müsste sich doch der Tooltiptext missbrauchen. :/

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 13. September 2023 um 21:16
    Zitat von Sören Hentzschel

    Ich hatte die falsche Schreibweise zunächst auch übersehen, es muss \t heißen. Ähnlich wie du \n ja auch für einen Zeilenumbruch verwendest, fügst du auf diese Weise einen Tab ein.

    Danke für die Erklärung,

    ist aber dennoch nicht zu gebrauchen.

    Im Gegenteil, der Versatz zwischen Mittwoch und Donnerstag wird sogar noch größer.

    Dann bleibt es halt, wie es ist.

    Hier mal der derzeitige Code:

    JavaScript
    // JavaScript Document
    // Clock.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/136920/?postID=1235096#post1235096
    
    (function() {
    
       if (location.href !== 'chrome://browser/content/browser.xhtml') return; 
       try {
          CustomizableUI.createWidget({
             id: 'time-button',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {         
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                // toolbaritem.onclick = event => onClick(event); // Fallback für Dharkness ;)
                var props = {
                   id: 'time-button',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Uhrzeit anzeigen',
                   accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
                   tooltiptext: 'Uhrzeit',
                };  
    
                for (var p in props)
                   toolbaritem.setAttribute(p, props[p]); 
    
                toolbaritem.onclick = function (event) {
                   if (event.button === 0) {
    
                      let t = new Date()
                      let language = 'de-DE';
    
                      let = d10 = t.toLocaleDateString( 'de-DE', { timeZone: 'Europe/Berlin',weekday: "long"} )
                      let = d20 = t.toLocaleDateString(`${language}`,{timeZone:'America/New_York',weekday: "long"} )
                      let = d30 = t.toLocaleDateString(`${language}`,{timeZone:'Europe/Moscow',weekday: "long"} )
                      let = d40 = t.toLocaleDateString(`${language}`,{timeZone:'Asia/Hong_Kong',weekday: "long"} )
                      let = d50 = t.toLocaleDateString(`${language}`,{timeZone:'Australia/Sydney',weekday: "long"} )
    
                      let = h10 = t.toLocaleTimeString(`${language}`,{timeZone:'Europe/Berlin',hour:'numeric',minute:'numeric',hour12:false})
                      let = h20 = t.toLocaleTimeString(`${language}`,{timeZone:'America/New_York',hour:'numeric',minute:'numeric',hour12:false})
                      let = h30 = t.toLocaleTimeString(`${language}`,{timeZone:'Europe/Moscow',hour:'numeric',minute:'numeric',hour12:false})
                      let = h40 = t.toLocaleTimeString(`${language}`,{timeZone:'Asia/Hong_Kong',hour:'numeric',minute:'numeric',hour12:false})
                      let = h50 = t.toLocaleTimeString(`${language}`,{timeZone:'Australia/Sydney',hour:'numeric',minute:'numeric',hour12:false})
    
                      let = x10 = t.toLocaleDateString(`${language}`,{timeZone:'Europe/Berlin',day: "numeric", month: "2-digit", year: "numeric"})
                      let = x20 = t.toLocaleDateString(`${language}`,{timeZone:'America/New_York',day: "numeric", month: "2-digit", year: "numeric"})
                      let = x30 = t.toLocaleDateString(`${language}`,{timeZone:'Europe/Moscow',day: "numeric", month: "2-digit", year: "numeric"})
                      let = x40 = t.toLocaleDateString(`${language}`,{timeZone:'Asia/Hong_Kong',day: "numeric", month: "2-digit", year: "numeric"})
                      let = x50 = t.toLocaleDateString(`${language}`,{timeZone:'Australia/Sydney',day: "numeric", month: "2-digit", year: "numeric"})
    
                      alert (`
                      Es ist ${d10}. der ${x10} - es ist ${h10} Uhr in Berlin\n
                      Es ist ${d20}. der ${x20} - es ist ${h20} Uhr in New York\n
                      Es ist ${d30}. der ${x30} - es ist ${h30} Uhr in Moskau
                      Es ist ${d40}. der ${x40} - es ist ${h40} Uhr in Hong Kong              \xa0
                      Es ist ${d50}. der ${x50} - es ist ${h50} Uhr in Sydney 
                      
                      `);
    
                   }
                };
    
                return toolbaritem;
             }    
          });
       } catch(e) { };
    
       let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
       let ButtonIcon = "clock.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
       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(`
    
           #time-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
           #time-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
             width: 32px !important;
             height: 32px !important;
             fill: lime !important;
             fill-opacity: 1 !important;
             }
    
          `), null, null);
    
       sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
       document.getElementById('profileschange-button').addEventListener( "click", onClick ); // Ist für Linunx und Mac OS zwingend notwendig
    
    })(); 
    Alles anzeigen
  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 13. September 2023 um 19:54

    Also mit dem /t weiß ich nichts anzufangen! Sorry.

    Aber ich habe noch etwas am Code herumexperimentiert!

    Nun schaut es so aus:

    Besser bekomme ich es einfach nicht hin.

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 12. September 2023 um 23:03
    Zitat von Horstmann

    Ausserdem finde ich es immer nett, wenn ein Script Button nur mit normalem Linksklick angesprochen wird statt mit allen Klicks, ausser man benutzt Extrafunktionen für die anderen Klicks.

    Nur so ein Gedanke. ;)

    I am Groot!

    Mache aus toolbaritem.onclick = function () {

    das =>

    JavaScript
                toolbaritem.onclick = function (event) {
                   if (event.button === 0) { ....

    und füge noch eine }  nach

    window.alert(t10+' Berlin\n'+t20+' New York\n'+t30+' Moscow\n'+t40+' Hong Kong\n'+t50+' Sydney'); ein. :D

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 12. September 2023 um 22:43
    Zitat von Horstmann

    Wenn ich einen Vorschlag machen dürfte: width und height sollten vielleicht generell nicht festgelegt werden für den Button; ...

    Ist, war von mir aber so beabsichtigt!

    Wer das nicht mag, kann es ja ausklammern ;)

    Zitat von Horstmann

    ...

    Ausserdem finde ich es immer nett, wenn ein Script Button nur mit normalem Linksklick angesprochen wird statt mit allen Klicks, ausser man benutzt Extrafunktionen für die anderen Klicks.

    Da ich trotz dieser Fortschritte immer noch nicht wirklich etwas von JavaScript verstehe,

    ich finde, es ist ein Wunder, dass ich das hinbekommen habe,

    wirst Du mir den "richtigen" Codeschnipsel um Deine Idee umsetzen zu können,

    schon zukommen lassen müssen.

    Denn ich habe keine Ahnung, wie das funktionieren soll.

    Wo bei, so einen Verdacht habe ich schon, mal schau'n.

    Zitat von Sören Hentzschel

    Der Titel kann aus Sicherheitsgründen nicht geändert werden. Im Kontext einer Website steht dort die Domain. Ansonsten eben genau das.

    Ok, dann ist das halt so. Danke für die Erklärung.

    Wie schauts mit der Formatierung aus?

    Jemand eine Idee?

  • Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

    • Mira_Belle
    • 12. September 2023 um 21:02

    Ich habe mal etwas gebastelt.

    Inspiriert würde ich durch worels Beitrag.

    Ich bräuchte aber noch ein kleines bisschen Hilfe!

    Das Skript funktioniert.

    Nur der Titel!!

    Wie kann dieser geändert werden?

    Z.B. "Eieruhr", oder was auch immer.

    Und wenn man sich die "Liste" anschaut, fällt einem auch sofort auf,

    der Versatz bei ungleich langen "Tagen".

    Wie lässt sich das schöner formatieren?

    Hier nun mal das JavaScript:

    JavaScript
    (function() {
    
       if (location.href !== 'chrome://browser/content/browser.xhtml') return; 
       try {
          CustomizableUI.createWidget({
             id: 'time-button',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {         
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    //            toolbaritem.onclick = event => onClick(event); // Fallback für Dharkness ;)
                var props = {
                   id: 'time-button',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Uhrzeit anzeigen',
                   accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
                   tooltiptext: 'Uhrzeit',
                };            
                for (var p in props)
                   toolbaritem.setAttribute(p, props[p]);            
    
                // Hinzufügen des Klick-Event-Handlers für das Popup
                toolbaritem.onclick = function () {
                   var t,t10,t20,t30,t40,t50;
                   t = new Date()
                   t10=t.toLocaleTimeString('de-DE',{timeZone:'Europe/Berlin',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t20=t.toLocaleTimeString('de-DE',{timeZone:'America/New_York',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t30=t.toLocaleTimeString('de-DE',{timeZone:'Europe/Moscow',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t40=t.toLocaleTimeString('de-DE',{timeZone:'Asia/Hong_Kong',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t50=t.toLocaleTimeString('de-DE',{timeZone:'Australia/Sydney',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   alert(t10+' Berlin\n'+t20+' New York\n'+t30+' Moscow\n'+t40+' Hong Kong\n'+t50+' Sydney')
                };
    
                return toolbaritem;
             }    
          });
       } catch(e) { };
       
       let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
       let ButtonIcon = "clock.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
       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(`
    
           #time-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
           #time-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
             width: 32px !important;
             height: 32px !important;
             fill: lime !important;
             fill-opacity: 1 !important;
             }
    
          `), null, null);
    
       sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
       document.getElementById('profileschange-button').addEventListener( "click", onClick ); // Ist für Linunx und Mac OS zwingend notwendig
    
    })();  
    Alles anzeigen

    Wichtig :!:

    Diese Liste.

    Code
    Städtecodes :
    
      'Europe/Andorra',
      'Asia/Dubai',
      'Asia/Kabul',
      'Europe/Tirane',
      'Asia/Yerevan',
      'Antarctica/Casey',
      'Antarctica/Davis',
      'Antarctica/DumontDUrville',
      'Antarctica/Mawson',
      'Antarctica/Palmer',
      'Antarctica/Rothera',
      'Antarctica/Syowa',
      'Antarctica/Troll',
      'Antarctica/Vostok',
      'America/Argentina/Buenos_Aires',
      'America/Argentina/Cordoba',
      'America/Argentina/Salta',
      'America/Argentina/Jujuy',
      'America/Argentina/Tucuman',
      'America/Argentina/Catamarca',
      'America/Argentina/La_Rioja',
      'America/Argentina/San_Juan',
      'America/Argentina/Mendoza',
      'America/Argentina/San_Luis',
      'America/Argentina/Rio_Gallegos',
      'America/Argentina/Ushuaia',
      'Pacific/Pago_Pago',
      'Europe/Vienna',
      'Australia/Lord_Howe',
      'Antarctica/Macquarie',
      'Australia/Hobart',
      'Australia/Currie',
      'Australia/Melbourne',
      'Australia/Sydney',
      'Australia/Broken_Hill',
      'Australia/Brisbane',
      'Australia/Lindeman',
      'Australia/Adelaide',
      'Australia/Darwin',
      'Australia/Perth',
      'Australia/Eucla',
      'Asia/Baku',
      'America/Barbados',
      'Asia/Dhaka',
      'Europe/Brussels',
      'Europe/Sofia',
      'Atlantic/Bermuda',
      'Asia/Brunei',
      'America/La_Paz',
      'America/Noronha',
      'America/Belem',
      'America/Fortaleza',
      'America/Recife',
      'America/Araguaina',
      'America/Maceio',
      'America/Bahia',
      'America/Sao_Paulo',
      'America/Campo_Grande',
      'America/Cuiaba',
      'America/Santarem',
      'America/Porto_Velho',
      'America/Boa_Vista',
      'America/Manaus',
      'America/Eirunepe',
      'America/Rio_Branco',
      'America/Nassau',
      'Asia/Thimphu',
      'Europe/Minsk',
      'America/Belize',
      'America/St_Johns',
      'America/Halifax',
      'America/Glace_Bay',
      'America/Moncton',
      'America/Goose_Bay',
      'America/Blanc-Sablon',
      'America/Toronto',
      'America/Nipigon',
      'America/Thunder_Bay',
      'America/Iqaluit',
      'America/Pangnirtung',
      'America/Atikokan',
      'America/Winnipeg',
      'America/Rainy_River',
      'America/Resolute',
      'America/Rankin_Inlet',
      'America/Regina',
      'America/Swift_Current',
      'America/Edmonton',
      'America/Cambridge_Bay',
      'America/Yellowknife',
      'America/Inuvik',
      'America/Creston',
      'America/Dawson_Creek',
      'America/Fort_Nelson',
      'America/Vancouver',
      'America/Whitehorse',
      'America/Dawson',
      'Indian/Cocos',
      'Europe/Zurich',
      'Africa/Abidjan',
      'Pacific/Rarotonga',
      'America/Santiago',
      'America/Punta_Arenas',
      'Pacific/Easter',
      'Asia/Shanghai',
      'Asia/Urumqi',
      'America/Bogota',
      'America/Costa_Rica',
      'America/Havana',
      'Atlantic/Cape_Verde',
      'America/Curacao',
      'Indian/Christmas',
      'Asia/Nicosia',
      'Asia/Famagusta',
      'Europe/Prague',
      'Europe/Berlin',
      'Europe/Copenhagen',
      'America/Santo_Domingo',
      'Africa/Algiers',
      'America/Guayaquil',
      'Pacific/Galapagos',
      'Europe/Tallinn',
      'Africa/Cairo',
      'Africa/El_Aaiun',
      'Europe/Madrid',
      'Africa/Ceuta',
      'Atlantic/Canary',
      'Europe/Helsinki',
      'Pacific/Fiji',
      'Atlantic/Stanley',
      'Pacific/Chuuk',
      'Pacific/Pohnpei',
      'Pacific/Kosrae',
      'Atlantic/Faroe',
      'Europe/Paris',
      'Europe/London',
      'Asia/Tbilisi',
      'America/Cayenne',
      'Africa/Accra',
      'Europe/Gibraltar',
      'America/Godthab',
      'America/Danmarkshavn',
      'America/Scoresbysund',
      'America/Thule',
      'Europe/Athens',
      'Atlantic/South_Georgia',
      'America/Guatemala',
      'Pacific/Guam',
      'Africa/Bissau',
      'America/Guyana',
      'Asia/Hong_Kong',
      'America/Tegucigalpa',
      'America/Port-au-Prince',
      'Europe/Budapest',
      'Asia/Jakarta',
      'Asia/Pontianak',
      'Asia/Makassar',
      'Asia/Jayapura',
      'Europe/Dublin',
      'Asia/Jerusalem',
      'Asia/Kolkata',
      'Indian/Chagos',
      'Asia/Baghdad',
      'Asia/Tehran',
      'Atlantic/Reykjavik',
      'Europe/Rome',
      'America/Jamaica',
      'Asia/Amman',
      'Asia/Tokyo',
      'Africa/Nairobi',
      'Asia/Bishkek',
      'Pacific/Tarawa',
      'Pacific/Enderbury',
      'Pacific/Kiritimati',
      'Asia/Pyongyang',
      'Asia/Seoul',
      'Asia/Almaty',
      'Asia/Qyzylorda',
      'Asia/Qostanay', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068
      'Asia/Aqtobe',
      'Asia/Aqtau',
      'Asia/Atyrau',
      'Asia/Oral',
      'Asia/Beirut',
      'Asia/Colombo',
      'Africa/Monrovia',
      'Europe/Vilnius',
      'Europe/Luxembourg',
      'Europe/Riga',
      'Africa/Tripoli',
      'Africa/Casablanca',
      'Europe/Monaco',
      'Europe/Chisinau',
      'Pacific/Majuro',
      'Pacific/Kwajalein',
      'Asia/Yangon',
      'Asia/Ulaanbaatar',
      'Asia/Hovd',
      'Asia/Choibalsan',
      'Asia/Macau',
      'America/Martinique',
      'Europe/Malta',
      'Indian/Mauritius',
      'Indian/Maldives',
      'America/Mexico_City',
      'America/Cancun',
      'America/Merida',
      'America/Monterrey',
      'America/Matamoros',
      'America/Mazatlan',
      'America/Chihuahua',
      'America/Ojinaga',
      'America/Hermosillo',
      'America/Tijuana',
      'America/Bahia_Banderas',
      'Asia/Kuala_Lumpur',
      'Asia/Kuching',
      'Africa/Maputo',
      'Africa/Windhoek',
      'Pacific/Noumea',
      'Pacific/Norfolk',
      'Africa/Lagos',
      'America/Managua',
      'Europe/Amsterdam',
      'Europe/Oslo',
      'Asia/Kathmandu',
      'Pacific/Nauru',
      'Pacific/Niue',
      'Pacific/Auckland',
      'Pacific/Chatham',
      'America/Panama',
      'America/Lima',
      'Pacific/Tahiti',
      'Pacific/Marquesas',
      'Pacific/Gambier',
      'Pacific/Port_Moresby',
      'Pacific/Bougainville',
      'Asia/Manila',
      'Asia/Karachi',
      'Europe/Warsaw',
      'America/Miquelon',
      'Pacific/Pitcairn',
      'America/Puerto_Rico',
      'Asia/Gaza',
      'Asia/Hebron',
      'Europe/Lisbon',
      'Atlantic/Madeira',
      'Atlantic/Azores',
      'Pacific/Palau',
      'America/Asuncion',
      'Asia/Qatar',
      'Indian/Reunion',
      'Europe/Bucharest',
      'Europe/Belgrade',
      'Europe/Kaliningrad',
      'Europe/Moscow',
      'Europe/Simferopol',
      'Europe/Kirov',
      'Europe/Astrakhan',
      'Europe/Volgograd',
      'Europe/Saratov',
      'Europe/Ulyanovsk',
      'Europe/Samara',
      'Asia/Yekaterinburg',
      'Asia/Omsk',
      'Asia/Novosibirsk',
      'Asia/Barnaul',
      'Asia/Tomsk',
      'Asia/Novokuznetsk',
      'Asia/Krasnoyarsk',
      'Asia/Irkutsk',
      'Asia/Chita',
      'Asia/Yakutsk',
      'Asia/Khandyga',
      'Asia/Vladivostok',
      'Asia/Ust-Nera',
      'Asia/Magadan',
      'Asia/Sakhalin',
      'Asia/Srednekolymsk',
      'Asia/Kamchatka',
      'Asia/Anadyr',
      'Asia/Riyadh',
      'Pacific/Guadalcanal',
      'Indian/Mahe',
      'Africa/Khartoum',
      'Europe/Stockholm',
      'Asia/Singapore',
      'America/Paramaribo',
      'Africa/Juba',
      'Africa/Sao_Tome',
      'America/El_Salvador',
      'Asia/Damascus',
      'America/Grand_Turk',
      'Africa/Ndjamena',
      'Indian/Kerguelen',
      'Asia/Bangkok',
      'Asia/Dushanbe',
      'Pacific/Fakaofo',
      'Asia/Dili',
      'Asia/Ashgabat',
      'Africa/Tunis',
      'Pacific/Tongatapu',
      'Europe/Istanbul',
      'America/Port_of_Spain',
      'Pacific/Funafuti',
      'Asia/Taipei',
      'Europe/Kiev',
      'Europe/Uzhgorod',
      'Europe/Zaporozhye',
      'Pacific/Wake',
      'America/New_York',
      'America/Detroit',
      'America/Kentucky/Louisville',
      'America/Kentucky/Monticello',
      'America/Indiana/Indianapolis',
      'America/Indiana/Vincennes',
      'America/Indiana/Winamac',
      'America/Indiana/Marengo',
      'America/Indiana/Petersburg',
      'America/Indiana/Vevay',
      'America/Chicago',
      'America/Indiana/Tell_City',
      'America/Indiana/Knox',
      'America/Menominee',
      'America/North_Dakota/Center',
      'America/North_Dakota/New_Salem',
      'America/North_Dakota/Beulah',
      'America/Denver',
      'America/Boise',
      'America/Phoenix',
      'America/Los_Angeles',
      'America/Anchorage',
      'America/Juneau',
      'America/Sitka',
      'America/Metlakatla',
      'America/Yakutat',
      'America/Nome',
      'America/Adak',
      'Pacific/Honolulu',
      'America/Montevideo',
      'Asia/Samarkand',
      'Asia/Tashkent',
      'America/Caracas',
      'Asia/Ho_Chi_Minh',
      'Pacific/Efate',
      'Pacific/Wallis',
      'Pacific/Apia',
      'Africa/Johannesburg'
    Alles anzeigen
  • FirefoxUhr / auch bei Vollbild sichtbare Uhr (Tipp!)

    • Mira_Belle
    • 12. September 2023 um 20:31

    Scheiße, hat das einen Spaß gemacht :!:

    Hier einmal ein JavaScript, das einen Button erzeugt und beim draufklicken

    wird ein "Popupfenster" angezeigt mit Uhrzeit und Datum

    in Berlin, New York, Hong_Kong, Sydney.

    Aber das Skript kann beliebig angepasst werden.

    JavaScript
    (function() {
    
       if (location.href !== 'chrome://browser/content/browser.xhtml') return; 
       try {
          CustomizableUI.createWidget({
             id: 'time-button',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {         
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
    //            toolbaritem.onclick = event => onClick(event); // Fallback für Dharkness ;)
                var props = {
                   id: 'time-button',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Uhrzeit anzeigen',
                   accesskey: '', // Wer möchte kann hier z.B. 'C' eintragen, dann kann per "Alt + C" das Skript ausgeführt werden
                   tooltiptext: 'Uhrzeit',
                };            
                for (var p in props)
                   toolbaritem.setAttribute(p, props[p]);            
    
                // Hinzufügen des Klick-Event-Handlers für das Popup
                toolbaritem.onclick = function () {
                   var t,t10,t20,t30,t40,t50;
                   t = new Date()
                   t10=t.toLocaleTimeString('de-DE',{timeZone:'Europe/Berlin',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t20=t.toLocaleTimeString('de-DE',{timeZone:'America/New_York',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t30=t.toLocaleTimeString('de-DE',{timeZone:'Europe/Moscow',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t40=t.toLocaleTimeString('de-DE',{timeZone:'Asia/Hong_Kong',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   t50=t.toLocaleTimeString('de-DE',{timeZone:'Australia/Sydney',weekday:'long',day:'numeric',month:'short',hour:'numeric',minute:'numeric',hour12:false})
                   alert(t10+' Berlin\n'+t20+' New York\n'+t30+' Moscow\n'+t40+' Hong_Kong\n'+t50+' Sydney')
                };
    
                return toolbaritem;
             }    
          });
       } catch(e) { };
       
       let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
       let ButtonIcon = "default-browser-red.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
       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(`
    
           #time-button { list-style-image: url("${ProfilePath}/${ButtonIcon}") }
           #time-button.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon {
             width: 32px !important;
             height: 32px !important;
    /*         fill: #E0E0E0 !important;    */
             fill-opacity: 1 !important;
             }
    
          `), null, null);
    
       sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
       document.getElementById('profileschange-button').addEventListener( "click", onClick ); // Ist für Linunx und Mac OS zwingend notwendig
    
    })();   
    Alles anzeigen
  • Symbole in den Kontextmenüs [ Update ]

    • Mira_Belle
    • 12. September 2023 um 10:33

    Tada :!:

    Es ist so weit!

    Es gibt "neue" Symbole in Form von Vektorgrafiken.

    Außerdem habe ich ausgemistet!

    Der Code des JavaSkripts wurde schon angepasst,

    das CSS liefere ich hier noch nach.

    Auch das CSS für die Symbole in der Bibliothek ist fertig.

    JavaScript
    // Symbole.uc.js
    
    /* ****************************************************************************************************************** */
    /* Die Entstehung des Symbole.css => https://www.camp-firefox.de/forum/thema/134970/?postID=1205292#post1205292       */
    /* ****************************************************************************************************************** */ 
    /* Das JavaScript                                                                                                     */
    /* https://www.camp-firefox.de/forum/thema/134970/?postID=1216936#post1216936                                         */
    /* version 1.0                                                                                                        */
    /* https://www.camp-firefox.de/forum/thema/134970/?postID=1235046#post1235046                                         */
    /* version 2.0                                                                                                        */
    /* ****************************************************************************************************************** */
    
    (function() {
    //    if (location.href !== 'chrome://browser/content/browser.xhtml') return;
    
        let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
    
    //    var css =`
    
    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(`
    
            /*--------------------------------------------------------------------------*/    
            /*--------- Texte im Hamburgermenü und in den Submenüs eingerückt ----------*/
            /*-------------- und in dem Anmeldenbutton das Icon eingefügt --------------*/
            /*--------------------------------------------------------------------------*/
    
            .subviewbutton:not(.subviewbutton-iconic, [checked="true"], [targetURI]) > .toolbarbutton-icon {
                width: 16px;
                height: 16px;
                margin-inline-end: 8px !important;
                -moz-context-properties: fill, fill-opacity;
                fill: currentColor;
            }
    
            #appMenu-fxa-label2::before,
            #fxa-manage-account-button::after {
                content: "";
                display: -moz-box;
                border-radius: 50%;
                background: var(--avatar-image-url) no-repeat center/contain;
                -moz-context-properties: fill;
                fill: currentColor;
            }
    
            #appMenu-fxa-label2::before {
                width: 16px;
                height: 16px;
                margin-inline-end: 8px;
            }
    
            /* Neuer Tab */
    /*        #appMenu-new-tab-button2 { list-style-image: url("${ProfilePath}/session.svg"); }    */
            #appMenu-new-tab-button2 { list-style-image: url("${ProfilePath}/tab-open.svg"); }
            /* Neues Fenster */
    /*        #appMenu-new-window-button2 { list-style-image: url("${ProfilePath}/window.svg"); }    */
            #appMenu-new-window-button2 { list-style-image: url("${ProfilePath}/session.svg"); }
            /* Neues privates Fenster */
            #appMenu-new-private-window-button2 { list-style-image: url("${ProfilePath}/privateBrowsing.svg"); }
            /* Lesezeichen */
            #appMenu-bookmarks-button { list-style-image: url("${ProfilePath}/bookmark.svg"); }
            /* Neues privates Fenster */
            #appMenu-new-private-window-button2 { list-style-image: url("${ProfilePath}/privateBrowsing.svg"); }
            /* Lesezeichen */
            #appMenu-bookmarks-button { list-style-image: url("${ProfilePath}/bookmark.svg"); }
            /* Chronik */
            #appMenu-history-button { list-style-image: url("${ProfilePath}/history.svg"); }
            /* Download */
            #appMenu-downloads-button { list-style-image: url("${ProfilePath}/downloads.svg"); }
            /* Passwörter */
            #appMenu-passwords-button { list-style-image: url("${ProfilePath}/passwords.svg"); }
            /* Add-ons und Themes */
            #appMenu-extensions-themes-button { list-style-image: url("${ProfilePath}/addons.svg"); }
            /* Drucken */
            #appMenu-print-button2 { list-style-image: url("${ProfilePath}/printer.svg"); }
            /* Seite speichern unter */
            #appMenu-save-file-button2 { list-style-image: url("${ProfilePath}/folder-save.svg"); }
            /* In Seite suchen */
            #appMenu-find-button2 { list-style-image: url("${ProfilePath}/search.svg"); }
            /* Seite übersetzen */
            #appMenu-translate-button { list-style-image: url("${ProfilePath}/translations.svg"); }
    
            /* Zoom */
    
            #appMenu-zoom-controls::before {
                margin-top: 3px !important;
                margin-right: 10px !important; 
                margin-left: -1px !important;
                content: '' !important;
                display: block !important;
                width: 16px !important;
                height: 16px !important;
                mask-image:  url("${ProfilePath}/screenshot.svg") !important;
                mask-repeat: no-repeat;
                mask-position: center;
                background-color: #e1e1e1 !important;
            }
    
            /*Einstellungen */
            #appMenu-settings-button { list-style-image: url("${ProfilePath}/settings.svg"); }
            /*Weitere Werkzeuge */
            #appMenu-more-button2 { list-style-image: url("${ProfilePath}/debugging-workers.svg"); }
            /* Hilfe */
            #appMenu-help-button2 { list-style-image: url("${ProfilePath}/help.svg"); }
            /* Beenden */
            #appMenu-quit-button2 { list-style-image: url("${ProfilePath}/quit.svg"); }
    
            /*= Panel - Bookmark =========================================================*/
        
            /* Lesezeichen bearbeiten */
            
            [data-l10n-id="bookmarks-bookmark-edit-panel"]::before {
                margin-top: 3px !important;    
                margin-right: -15px !important;
                margin-left: -1px !important;
                content: '' !important;
                display: block !important;
                width: 16px !important;
                height: 16px !important;
                mask-image: url("${ProfilePath}/window.svg") !important;
                mask-repeat: no-repeat;
                mask-position: center;
                background-color: #e1e1e1 !important;
            }
    
            /* Aktuellen Tab als Lesezeichen ... */
    
            [data-l10n-id="bookmarks-current-tab"]::before {
                margin-top: 3px !important;    
                margin-right: -15px !important;
                margin-left: -1px !important;
                content: '' !important;
                display: block !important;
                width: 16px !important;
                height: 16px !important;
                mask-image: url("${ProfilePath}/session.svg") !important;
                mask-repeat: no-repeat;
                mask-position: center;
                background-color: #e1e1e1 !important;
            }
    
            /* Dieses Lesezeichen bearbeiten...  */
            #panelMenuBookmarkThisPage { list-style-image: url("${ProfilePath}/bookmark-hollow.svg"); }
            /* Lesezeichen durchsuchen */
            #panelMenu_searchBookmarks { list-style-image: url("${ProfilePath}/search.svg"); }
            /* Lesezeichen-Symbolleiste ausblenden */
            #panelMenu_viewBookmarksToolbar { list-style-image: url("${ProfilePath}/bookmarks-toolbar.svg"); }
            /* Lesezeichen verwalten */
            #panelMenu_showAllBookmarks { list-style-image: url("${ProfilePath}/bookmarks-tray.svg"); } 
    
            /*= Panel - Chronik ===========================================================*/
            /*= Panel - History ==========================================================*/
        
            /* Kürzlich geschlossene Tabs */
    /*        #appMenuRecentlyClosedTabs { list-style-image: url("${ProfilePath}/tab.svg"); }    */
            #appMenuRecentlyClosedTabs { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACcklEQVRYR8WWzVEbQRBGtRHYHHy2iAAIgEJkIEdgcfbBEAEiAhcXrogITAbI5QAMVQ5gdfYBiEB8b6uHaq1md2ZXBk3VlHa0/fOmu6dni8GWR7Fl/4NWgOVyeSvAz5rHRVE8xWAls6//P7h3C8mWuRtLASzN0L2HkNOPWn/XnGgOI86QnwnkMgWSC4CdCkKTHf/UBCI1iMQXgaAbHV0AMIBBv+OF1qQJB7wDamwzpIXUnQgCubXRFcAbuJDRacyopYh3pIkBBHW0Fom+AHMZIx2tQyATCVybUCmd3bpCXwDsUGQnGRBE4tzkSMXM62wCkAVh6SglTE3cC+DgfwJgiyqPFlhwJIhTPf+w9a7vE6kIUDR7iTA3FqMDGOn5ztYU4zy8SwFwrDj3TeOp7Yx7JUUhNLUV4He7CzYGkIGhdsS9kDMe/N1hhfhoit0iYJcN+ctpvR5upsUZILJBd6R9MzrVALv+08N5ALkRwEQAwHzlT61X0p4qwql0QhO50PM8J/6SmQSH+j3U/G16FZC3kQIoJUzef0lxlOl8UMv5P+l9Mt2D+qlJAUSPTg6IIIjWkZO9lHMa0spoBJABdhxtHpkAPn1/SYU/GcFGG0Bj+8wE8Bv4JudXMb02gNCGn6Xc9QhWvlzz4a7gJlz7rnwFsMLhqEBO+x0acTR3mVGYSa46fhqlzbl+sVnBeAAvHOzzybUfI88EIHJEst5BXzflAULF4xRaFKd9nQdAiyz1RFSZwHCJ7dQj0PvI5UQDGcFM9VM1ttARYxEgR8y3GCMZZUYBCHvubbcp3EIRGNZTQH44Lm8NQY2NQ0t+tw+SppBtHeAFE7gPMJeICC4AAAAASUVORK5CYII="); }
            /* Kürzlich geschlossene Fenster */
            #appMenuRecentlyClosedWindows { list-style-image: url("${ProfilePath}/window.svg"); }
            /* Vorherige Sitzung wiederherstellen */
            #appMenu-restoreSession{ list-style-image: url("${ProfilePath}/session-restore.svg"); }
            /* Neueste Chronik löschen ... */
            #appMenuClearRecentHistory { list-style-image: url("${ProfilePath}/history-forget.svg"); }
            /* Chronik verwalten */
            #PanelUI-historyMore { list-style-image: url("${ProfilePath}/history.svg"); }
            /* Alle Tabs wieder öffnen */
            #appMenu-library-recentlyClosedTabs { list-style-image: url("${ProfilePath}/window-move.svg"); }
            /* Alle Fenster wieder öffnen */
            #appMenu-library-recentlyClosedWindows { list-style-image: url("${ProfilePath}/session-restore.svg"); }
            /* Chronik durchsuchen */
            #appMenuSearchHistory { list-style-image: url("${ProfilePath}/window-search.svg"); }
    
            /*= Panel - More tools =======================================================*/
        
            /* Symbolleiste anpassen ... */
            #appmenu-moreTools-button { list-style-image: url("${ProfilePath}/Themes.svg"); }
            /* Werkzeuge für Web-... */
            #appmenu-developer-tools-view .subviewbutton:nth-child(1) { list-style-image: url("${ProfilePath}/developer.svg"); }
            /* Task Manager */
            #appmenu-developer-tools-view .subviewbutton:nth-child(2) { list-style-image: url("${ProfilePath}/performance.svg"); }
            /* Externes Debugging - Edge bug.svg */
            #appmenu-developer-tools-view .subviewbutton:nth-child(3) { list-style-image: url("${ProfilePath}/bug.svg"); }
            /* Browser-Werkzeuge - Edge webdeveloper.svg */
            #appmenu-developer-tools-view .subviewbutton:nth-child(4) { list-style-image: url("${ProfilePath}/window-dev-tools.svg"); }
            /* Browser-Inhaltswerkzeuge */
            #appmenu-developer-tools-view .subviewbutton:nth-child(5) { list-style-image: url("${ProfilePath}/command-frames.svg"); }
            /* Browser-Konsole */
            #appmenu-developer-tools-view .subviewbutton:nth-last-child(5) { list-style-image: url("${ProfilePath}/command-console.svg"); }
            /* Bildschirmgrößen testen */
            #appmenu-developer-tools-view .subviewbutton:nth-last-child(4) { list-style-image: url("${ProfilePath}/command-responsivemode.svg"); }
            /* Farbpipette */
            #appmenu-developer-tools-view .subviewbutton:nth-last-child(3) { list-style-image: url("${ProfilePath}/command-eyedropper.svg"); }
            /* Seitenquelltext anzeigen - Edge file-search.svg */
            #appmenu-developer-tools-view .subviewbutton:nth-last-child(2) { list-style-image: url("${ProfilePath}/document-search.svg"); }
            /* Erweiterungen für Entwickler */
            #appmenu-developer-tools-view .subviewbutton:nth-last-child(1) { list-style-image: url("${ProfilePath}/addons.svg"); }
        
            /*= Panel - Help =============================================================*/
        
            /* Hilfe erhalten */  
            #appMenu_menu_openHelp { list-style-image: url("${ProfilePath}/help.svg"); }
            /* Ideen und Feedback teilen ... */
            #appMenu_feedbackPage { list-style-image: url("${ProfilePath}/send.svg"); }
            /* Fehlerbehebungsmodus ... */
            #appMenu_helpSafeMode { list-style-image: url("${ProfilePath}/debugging-workers.svg"); }
            /* Weitere Informationen zur ... */
            #appMenu_troubleShooting { list-style-image: url("${ProfilePath}/more.svg"); }
            /* ?? Eine Glühbirne ?? */
            #appMenu_help_reportSiteIssue { list-style-image: url("${ProfilePath}/lightbulb.svg"); }
            /* Betrügerische Website melden ... */
            #appMenu_menu_HelpPopup_reportPhishingtoolmenu { list-style-image: url("${ProfilePath}/warning.svg"); }
            /* Zu einem neuen Gerät wechseln */
            #appMenu_helpSwitchDevice { list-style-image: url("${ProfilePath}/send-to-device.svg"); }
            /* Über Firefox */
            #appMenu_aboutName { list-style-image: url("${ProfilePath}/firefox.svg"); }
    
            /* ================================================================================================== */
    
            /*Abstände für alle Icons im Kontextmenü*/
            
            menupopup:not(.in-menulist) > menu:not(.menu-iconic),
            menupopup:not(.in-menulist, [aria-label]) > menuitem:not(.menuitem-iconic, [checked="true"]) {
                padding-inline-start: calc(1em + 24px) !important;
                background-position: left 1em center;
                background-repeat: no-repeat;
                background-size: 16px;
                -moz-context-properties: fill, fill-opacity;
                fill: #E0E0E0 !important;
    
            }
            /*    
            menu[_moz-menuactive="true"][disabled="true"],
            menuitem[_moz-menuactive="true"][disabled="true"] { */
            /*
            :is(menu,menuitem)[_moz-menuactive="true"][disabled="true"] {
                background-color: #5C5C5C !important;
                border-radius: 4px !important;
            }    
            */
            #context-savepage { background-image: url("${ProfilePath}/folder-save.svg"); }
            #context-pocket { background-image: url("${ProfilePath}/pocket-outline.svg"); }
            #context-selectall { background-image: url("${ProfilePath}/select-all-on.svg"); }
            #context-take-screenshot { background-image: url("${ProfilePath}/screenshot.svg"); }
            #context-viewsource { background-image: url("${ProfilePath}/document-search.svg"); }
            #context-inspect-a11y { background-image: url("${ProfilePath}/tool-accessibility.svg"); }
            #context-inspect { background-image: url("${ProfilePath}/command-pick.svg"); }
            #context-copy { background-image: url("${ProfilePath}/edit-copy.svg"); }
    
            #context-searchselect { background-image: url("${ProfilePath}/search.svg"); }
            #context-viewpartialsource-selection { background-image: url("${ProfilePath}/document-search.svg"); }
    
            #context-openlinkincurrent { background-image: url("${ProfilePath}/link-square.svg"); }
    /*        #context-openlinkintab { background-image: url("${ProfilePath}/session.svg"); }    */
            #context-openlinkintab { background-image: url("${ProfilePath}/tab-open.svg"); }
    /*        #context-openlink { background-image: url("${ProfilePath}/window.svg"); }    */
            #context-openlink { background-image: url("${ProfilePath}/session.svg"); }
            #context-openlinkprivate { background-image: url("${ProfilePath}/privateBrowsing.svg"); }
            #context-bookmarklink { background-image: url("${ProfilePath}/folder-save.svg"); }
            #context-savelink { background-image: url("${ProfilePath}/image-add.svg"); }
            #context-print-selection { background-image: url("${ProfilePath}/printer.svg"); }
    
            #context-savelinktopocket { background-image: url("${ProfilePath}/image.svg"); }
            #context-copylink { background-image: url("${ProfilePath}/link.svg"); }
            #context-reloadimage { background-image: url("${ProfilePath}/reload.svg"); }
            #context-viewimage { background-image: url("${ProfilePath}/image-add.svg"); }
            #context-saveimage { background-image: url("${ProfilePath}/image.svg"); }
            #context-copyimage-contents  { background-image: url("${ProfilePath}/image-copy.svg"); }
            #context-copyimage { background-image: url("${ProfilePath}/image-resize.svg"); }
            #context-sendimage { background-image: url("${ProfilePath}/link.svg"); }
            #context-setDesktopBackground { background-image: url("${ProfilePath}/image-resize.svg"); }
    
            #_36bde3a5-9f17-4ad9-a587-d4a3c8e8d200_-menuitem-_background-tab_link { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACcklEQVRYR8WWzVEbQRBGtRHYHHy2iAAIgEJkIEdgcfbBEAEiAhcXrogITAbI5QAMVQ5gdfYBiEB8b6uHaq1md2ZXBk3VlHa0/fOmu6dni8GWR7Fl/4NWgOVyeSvAz5rHRVE8xWAls6//P7h3C8mWuRtLASzN0L2HkNOPWn/XnGgOI86QnwnkMgWSC4CdCkKTHf/UBCI1iMQXgaAbHV0AMIBBv+OF1qQJB7wDamwzpIXUnQgCubXRFcAbuJDRacyopYh3pIkBBHW0Fom+AHMZIx2tQyATCVybUCmd3bpCXwDsUGQnGRBE4tzkSMXM62wCkAVh6SglTE3cC+DgfwJgiyqPFlhwJIhTPf+w9a7vE6kIUDR7iTA3FqMDGOn5ztYU4zy8SwFwrDj3TeOp7Yx7JUUhNLUV4He7CzYGkIGhdsS9kDMe/N1hhfhoit0iYJcN+ctpvR5upsUZILJBd6R9MzrVALv+08N5ALkRwEQAwHzlT61X0p4qwql0QhO50PM8J/6SmQSH+j3U/G16FZC3kQIoJUzef0lxlOl8UMv5P+l9Mt2D+qlJAUSPTg6IIIjWkZO9lHMa0spoBJABdhxtHpkAPn1/SYU/GcFGG0Bj+8wE8Bv4JudXMb02gNCGn6Xc9QhWvlzz4a7gJlz7rnwFsMLhqEBO+x0acTR3mVGYSa46fhqlzbl+sVnBeAAvHOzzybUfI88EIHJEst5BXzflAULF4xRaFKd9nQdAiyz1RFSZwHCJ7dQj0PvI5UQDGcFM9VM1ttARYxEgR8y3GCMZZUYBCHvubbcp3EIRGNZTQH44Lm8NQY2NQ0t+tw+SppBtHeAFE7gPMJeICC4AAAAASUVORK5CYII="); }
    
            /* Rückgängig */
            #context-undo { background-image: url("${ProfilePath}/undo.svg"); }
            /* Wiederherstellen */
            #context-redo{ background-image: url("${ProfilePath}/sync.svg"); }
            /* Ausschneiden */
            #context-cut { background-image: url("${ProfilePath}/edit-cut.svg"); }
            /* Kopieren */
            #context-copy { background-image: url("${ProfilePath}/copy.svg"); }
            /* Einfügen */
            #context-paste { background-image: url("${ProfilePath}/paste.svg"); }
            /* Löschen */
            #context-delete { background-image: url("${ProfilePath}/delete.svg"); }
            /* Alles auswählen */
            #context-selectall { background-image: url("${ProfilePath}/select-all-on.svg"); }
            /* Rechtschreibung prüfen */
            #spell-check-enabled { background-image: url("${ProfilePath}/spell-check.svg"); }
    
    
            /* ----------------------------------------- */
            /* --------- Kontextmenüs der Tabs --------- */
            /* ----------------------------------------- */
    
            /* Neuer Tab */
    /*        #context_openANewTab { background-image: url("${ProfilePath}/session.svg"); }    */
            #context_openANewTab { background-image: url("${ProfilePath}/tab-open.svg"); }
            /* Tab neu laden */
            #context_reloadTab { background-image: url("${ProfilePath}/reload.svg"); }
            /* Tab stummschalten */
            #context_toggleMuteTab { background-image: url("${ProfilePath}/audio-muted.svg"); }
            /* Stummschaltung für Tab aufheben */
            #context_toggleMuteTab[muted] { background-image: url("${ProfilePath}/audio.svg"); }
            /* Tab anheften */
            #context_pinTab { background-image: url("${ProfilePath}/glyph-pin-16.svg"); }
            /* Tab klonen */
            #context_duplicateTab { background-image: url("${ProfilePath}/duplicat.svg"); }
            /* Tab als Lesezeichen hinzufügen */
            #context_bookmarkTab { background-image: url("${ProfilePath}/bookmark-hollow.svg"); }
            /* Tab verschieben */
            #context_moveTabOptions { background-image: url("${ProfilePath}/arrow-swap.svg"); }
            
                /* <<< Submenu_Tab verschieben >>> */    
            
                /* An Anfang verschieben */
                #context_moveToStart { background-image: url("${ProfilePath}/arrow-back.svg"); }
                /* An Ende verschieben */
                #context_moveToEnd { background-image: url("${ProfilePath}/arrow-forward.svg"); }
                /* In neues Fenster verschieben */
                #context_openTabInWindow { background-image: url("${ProfilePath}/session-restore.svg"); }    
            
            /* Teilen */
            .share-tab-url-item { display: none; }
            /* Alle Tabs auswählen */
            #context_selectAllTabs { background-image: url("${ProfilePath}/tab-multiple.svg"); }
            /* Tab schließen */
    /*        #context_closeTab { background-image: url("${ProfilePath}/stop.svg"); }    */
            #context_closeTab { background-image: url("${ProfilePath}/tab-close.svg"); }
            /*Mehrere Tabs schließen */
    /*        #context_closeTabOptions { background-image: url("${ProfilePath}/close-more.svg"); }    */
            #context_closeTabOptions { background-image: url("${ProfilePath}/tab-close.svg"); }
    
                /* <<< Submenu_Mehrere Tabs schließen >>> */
                
                /* Linke Tabs schließen */
    /*            #context_closeTabsToTheStart { background-image: url("${ProfilePath}/Sidebar-left.svg"); }    */
                #context_closeTabsToTheStart { background-image: url("${ProfilePath}/tab-left.svg"); }
                /* Rechte Tabs schließen */
    /*            #context_closeTabsToTheEnd { background-image: url("${ProfilePath}/Sidebar-right.svg"); }    */
                #context_closeTabsToTheEnd { background-image: url("${ProfilePath}/tab-right.svg"); }
                /* Andere Tabs schließen */
    /*            #context_closeOtherTabs { background-image: url("${ProfilePath}/right-left.svg"); }    */
                #context_closeOtherTabs { background-image: url("${ProfilePath}/tab-all.svg"); }
            
            /* Geschlossenen Tab wieder öffnen */
    /*        #context_undoCloseTab { background-image: url("${ProfilePath}/undo.svg"); }    */
            #context_undoCloseTab { background-image: url("${ProfilePath}/tab-restore"); }
    
            /* ================================================================ */
    
            /* Neuer Tab */
            #toolbar-context-openANewTab { background-image: url("${ProfilePath}/session.svg"); }
            /* Ausgewählten Tab neu laden */
            #toolbar-context-reloadSelectedTab { background-image: url("${ProfilePath}/reload.svg"); }
            /* Ausgewählten Tab als Lesezeichen hinzufügen... */
            #toolbar-context-bookmarkSelectedTab { background-image: url("${ProfilePath}/bookmark-hollow.svg"); }
            /* Alle Tabs auswählen */
            #toolbar-context-selectAllTabs { background-image: url("${ProfilePath}/tab-multiple.svg"); }
    
            /* Geschlossene Tabs wieder öffnen */
            #toolbar-context-undoCloseTab { background-image: url("${ProfilePath}/undo.svg"); }
    
            /* Symbolleiste anpassen... */
            menuitem.viewCustomizeToolbar { background-image: url("${ProfilePath}/Themes.svg"); }
    
            /* Lesezeichen-Symbolleiste */
            #toggle_PersonalToolbar { background-image: url("${ProfilePath}/bookmarks-toolbar.svg"); }
    
            /* --------------------------------------------- */
            /* - Kontextmenüs der Lesezeichen-Symbolleiste - */
            /* --------------------------------------------- */
    
            /* Löschen */
            #placesContext_delete { background-image: url("${ProfilePath}/delete.svg"); }
            /* Ausschneiden */
            #placesContext_cut { background-image: url("${ProfilePath}/edit-cut.svg"); }
            /* Kopieren */
            #placesContext_copy { background-image: url("${ProfilePath}/copy.svg"); }
            /* Einfügen */
            #placesContext_paste, #placesContext_paste_group { background-image: url("${ProfilePath}/paste.svg"); }
    
            /* Alle Lesezeichen öffnen */
            #placesContext_openBookmarkContainer\:tabs { background-image: url("${ProfilePath}/window-move.svg"); }
            /* Lesezeichen hinzufügen... */
            #placesContext_new\:bookmark { background-image: url("${ProfilePath}/bookmark-hollow.svg"); }
            /* Ordner hinzufügen... */
            #placesContext_new\:folder { background-image: url("${ProfilePath}/folder.svg"); }
            /* Trennlinie hinzufügen... */
            #placesContext_new\:separator { background-image: url("${ProfilePath}/vertical-line.svg"); }
    
            /* Lesezeichen verwalten */
            #placesContext_showAllBookmarks { background-image: url("${ProfilePath}/bookmarks-tray.svg"); }
            /* In neuem Tab öffnen */
            #placesContext_open\:newtab { background-image: url("${ProfilePath}/session.svg"); }
            /* In neuem Fenster öffnen */
            #placesContext_open\:newwindow { background-image: url("${ProfilePath}/window.svg"); }
            /* In neuem privaten Fenster öffnen */
            #placesContext_open\:newprivatewindow { background-image: url("${ProfilePath}/privateBrowsing.svg"); }
    
            /* Lesezeichen bearbeiten... */
            #placesContext_show_bookmark\:info { background-image: url("${ProfilePath}/edit.svg"); }
            /* Lesezeichen löschen */
            #placesContext_deleteBookmark { background-image: url("${ProfilePath}/delete.svg"); }
    
            /* ------------------------------------------ */
            /* ------- Kontextmenüs der Menuleise ------- */
            /* ------------------------------------------ */
    
            /* In Überhangmenü verschieben */
            .customize-context-moveToPanel { background-image: url("${ProfilePath}/glyph-pin-16.svg"); }
            /* Aus Symbolleiste entfernen */
            .customize-context-removeFromToolbar { background-image: url("${ProfilePath}/delete.svg"); }
    
            /* --------------------------------------------- */
            /* ------- Kontextmenüs in der Menuleise ------- */
            /* --------------------------------------------- */
    
            /* --- Datei --- */
    
            /* Neuer Tab */
    /*        #menu_newNavigatorTab { background-image: url("${ProfilePath}/session.svg"); }    */
            #menu_newNavigatorTab { background-image: url("${ProfilePath}/tab-open.svg"); }
            /* Neues Fenster */
    /*        #menu_newNavigator { background-image: url("${ProfilePath}/window.svg"); }    */
            #menu_newNavigator { background-image: url("${ProfilePath}/session.svg"); }
            /* Neues privates Fenster */
            #menu_newPrivateWindow { background-image: url("${ProfilePath}/privateBrowsing.svg"); }
            /* Datei öffnen... */
            #menu_openFile { background-image: url("${ProfilePath}//folder-open.svg"); }
            /* Seite speichern unter... */
            #menu_savePage { background-image: url("${ProfilePath}/folder-save.svg"); }
            /* Link per E-Mail senden... */
            #menu_sendLink { background-image: url("${ProfilePath}/mail.svg"); }
            /* Drucken... */
            #menu_print { background-image: url("${ProfilePath}/printer.svg"); }
            /* Daten aus einem anderen Browser importieren... */
            #menu_importFromAnotherBrowser { background-image: url("${ProfilePath}/import.svg"); }
            /* Offline arbeiten */
            #goOfflineMenuitem { background-image: url("${ProfilePath}/plug-disconnected.svg"); }
            /* Beenden */
            #menu_FileQuitItem { background-image: url("${ProfilePath}/quit.svg"); }
    
            /* --- Bearbeiten --- */
    
            /* Rückgängig */
            #menu_undo { background-image: url("${ProfilePath}/undo.svg"); }
            /* Wiederherstellen */
            #menu_redo { background-image: url("${ProfilePath}/sync.svg"); }
            /* Ausschneiden */
            #menu_cut { background-image: url("${ProfilePath}/edit-cut.svg"); }
            /* Kopieren */
            #menu_copy { background-image: url("${ProfilePath}/copy.svg"); }
            /* Einfügen */
            #menu_paste { background-image: url("${ProfilePath}/paste.svg"); }
            /* Löschen */
            #menu_delete { background-image: url("${ProfilePath}/delete.svg"); }
            /* Alles auswählen */
            #menu_selectAll { background-image: url("${ProfilePath}/select-all-on.svg"); }
            /* Seite durchsuchen... */
            #menu_find { background-image: url("${ProfilePath}/search.svg"); }
    
            /* --- Ansicht --- */
    
            /* Symbolleisten */
            #viewToolbarsMenu { background-image: url("${ProfilePath}/toolbar.svg"); }
            
                /* <<< Submenu_Symbolleisten >>> */
                
                #toggle_PersonalToolbar { background-image: url("${ProfilePath}/bookmarks-toolbar.svg"); }
                #menu_customizeToolbars { background-image: url("${ProfilePath}/Themes.svg"); }    
    
                /* ----------------------------------- */
                /* -- Checkbox und Haken im Submenu -- */
                /* ----------------------------------- */
    
                menuitem[checked="true"] > .menu-iconic-left {
                    list-style-image: url("${ProfilePath}/check.svg");
                    fill: #00E400 !important;
                }
    
                [data-l10n-id="toolbar-context-menu-bookmarks-toolbar-always-show-2"]:not([checked="true"]),
                [data-l10n-id="toolbar-context-menu-bookmarks-toolbar-on-new-tab-2"]:not([checked="true"]),
                [data-l10n-id="toolbar-context-menu-bookmarks-toolbar-never-show-2"]:not([checked="true"]),
                #menu_zoomReset:not([checked="true"]),
                #toggle_zoom:not([checked="true"]),
                #menu_pageStylePersistentOnly:not([checked="true"]) {
                    background-image: url("${ProfilePath}/square.svg");
                    background-repeat: no-repeat;
                }
    
                /* ----------------------------------- */
    
            /* Sidebar */
            #viewSidebarMenuMenu { background-image: url("${ProfilePath}/Dock Side Left.svg"); }
    
                /* <<< Submenu_Sidebar >>> */
    
                #menu_bookmarksSidebar:not([checked="true"]) { 
                    background-image: url("${ProfilePath}/bookmark.svg"); 
                    background-repeat: no-repeat;
                }
                #menu_historySidebar:not([checked="true"]) { 
                    background-image: url("${ProfilePath}/history.svg"); 
                    background-repeat: no-repeat;
                }
                #menu_tabsSidebar:not([checked="true"]) { 
                    background-image: url("${ProfilePath}/Dock Side Left.svg"); 
                    background-repeat: no-repeat;
                }
    
            /* Zoom */
            #viewFullZoomMenu { background-image: url("${ProfilePath}/screenshot.svg"); }
            
                /* <<< Submenu_Zoom >>> */
    
                #menu_zoomEnlarge { background-image: url("${ProfilePath}/zoom-in.svg"); }    /*  +  */
                #menu_zoomReduce { background-image: url("${ProfilePath}/zoom-out.svg"); }    /*  -  */
            
            /* Webseiten-Stil */
            #pageStyleMenu { background-image: url("${ProfilePath}/document-css.svg"); }
            
                /* <<< Submenu_Webseiten-Stil >>> */
            
                #menu_pageStyleNoStyle:not([checked="true"]) { 
                    background-image: url("${ProfilePath}/document-css.svg"); 
                    background-position: left 1em center;
                    background-repeat: no-repeat;
                }    
            
            /* Textkodierung reparieren */
            #repair-text-encoding { background-image: url("${ProfilePath}/characterEncoding.svg"); }
            /* Vollbild */
            #fullScreenItem { background-image: url("${ProfilePath}/fullscreen.svg"); }
    
            /* --- Chronik --- */
    
            /* Gesamte Chronik anzeigen */
            #menu_showAllHistory { background-image: url("${ProfilePath}/history.svg"); }
            /* Neueste Chronik löschen... */
            #sanitizeItem { background-image: url("${ProfilePath}/history-forget.svg"); }
            /* Vorherige Sitzung wiederherstellen */
            #historyRestoreLastSession { background-image: url("${ProfilePath}/session-restore.svg"); }
            /* Chronik durchsuchen */
            #menu_searchHistory { background-image: url("${ProfilePath}/window-search.svg"); }
            /* Kürzlich geschlossene Tabs */
    /*        #historyUndoMenu { background-image: url("${ProfilePath}/tab.svg"); }    */
            #historyUndoMenu { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACcklEQVRYR8WWzVEbQRBGtRHYHHy2iAAIgEJkIEdgcfbBEAEiAhcXrogITAbI5QAMVQ5gdfYBiEB8b6uHaq1md2ZXBk3VlHa0/fOmu6dni8GWR7Fl/4NWgOVyeSvAz5rHRVE8xWAls6//P7h3C8mWuRtLASzN0L2HkNOPWn/XnGgOI86QnwnkMgWSC4CdCkKTHf/UBCI1iMQXgaAbHV0AMIBBv+OF1qQJB7wDamwzpIXUnQgCubXRFcAbuJDRacyopYh3pIkBBHW0Fom+AHMZIx2tQyATCVybUCmd3bpCXwDsUGQnGRBE4tzkSMXM62wCkAVh6SglTE3cC+DgfwJgiyqPFlhwJIhTPf+w9a7vE6kIUDR7iTA3FqMDGOn5ztYU4zy8SwFwrDj3TeOp7Yx7JUUhNLUV4He7CzYGkIGhdsS9kDMe/N1hhfhoit0iYJcN+ctpvR5upsUZILJBd6R9MzrVALv+08N5ALkRwEQAwHzlT61X0p4qwql0QhO50PM8J/6SmQSH+j3U/G16FZC3kQIoJUzef0lxlOl8UMv5P+l9Mt2D+qlJAUSPTg6IIIjWkZO9lHMa0spoBJABdhxtHpkAPn1/SYU/GcFGG0Bj+8wE8Bv4JudXMb02gNCGn6Xc9QhWvlzz4a7gJlz7rnwFsMLhqEBO+x0acTR3mVGYSa46fhqlzbl+sVnBeAAvHOzzybUfI88EIHJEst5BXzflAULF4xRaFKd9nQdAiyz1RFSZwHCJ7dQj0PvI5UQDGcFM9VM1ttARYxEgR8y3GCMZZUYBCHvubbcp3EIRGNZTQH44Lm8NQY2NQ0t+tw+SppBtHeAFE7gPMJeICC4AAAAASUVORK5CYII="); }
            /* Kürzlich geschlossene Fenster */
            #historyUndoWindowMenu { background-image: url("${ProfilePath}/window.svg"); }
    
            /* Lesezeichen */
    
            /* Lesezeichen verwalten */
            #bookmarksShowAll { background-image: url("${ProfilePath}/bookmarks-tray.svg"); }
            /* Aktuellen Tab als Lesezeichen hinzufügen */
            #menu_bookmarkThisPage { background-image: url("${ProfilePath}/bookmark-hollow.svg"); }
            /* Lesezeichen durchsuchen */
            #menu_searchBookmarks { background-image: url("${ProfilePath}/search.svg"); }
            /* Lesezeichen-Symbolleiste */
            #bookmarksToolbarFolderMenu { list-style-image: url("${ProfilePath}/bookmarksToolbar.svg"); }
            /* Weitere Lesezeichen */
            #menu_unsortedBookmarks { list-style-image: url("${ProfilePath}/mail-inbox-all.svg") }
    
            /* --- Extras --- */
    
            /* Downloads */
            #menu_openDownloads { background-image: url("${ProfilePath}/downloads.svg"); }
            /* Add-ons und Themes */
            #menu_openAddons { background-image: url("${ProfilePath}/addons.svg"); }
            /* Firefox View */
            #menu_openFirefoxView { background-image: url("${ProfilePath}/firefox.svg"); }
            /* Anmelden */
            #sync-setup { background-image: url("${ProfilePath}/avatar-empty.svg"); }
            /* Browser-Werkzeuge */
            #browserToolsMenu { background-image: url("${ProfilePath}/debugging-workers.svg"); }
            
                /* <<< Submenu_Browser-Werkzeuge >>> */    
    
                /* Werkzeuge für Web-Entwickler */
                #menu_devToolbox { background-image: url("${ProfilePath}/developer.svg"); }
                /* Task-Manager */
                #menu_taskManager { background-image: url("${ProfilePath}/performance.svg"); }
                /* Externes Debugging */
                #menu_devtools_remotedebugging { background-image: url("${ProfilePath}/bug.svg"); }
                /* Browser-Werkzeuge */
                #menu_browserToolbox { background-image: url("${ProfilePath}/window-dev-tools.svg"); }
                /* Browser-Inhaltswerkzeuge */
                #menu_browserContentToolbox { background-image: url("${ProfilePath}/command-frames.svg"); }
                /* Browser-Konsole */
                #menu_browserConsole { background-image: url("${ProfilePath}/command-console.svg"); }
                /* Bildschirmgrößen testen */
                #menu_responsiveUI { background-image: url("${ProfilePath}/command-responsivemode.svg"); }
                /*Farbpipette */
                #menu_eyedropper { background-image: url("${ProfilePath}/command-eyedropper.svg"); }
                /* Seitenquelltext anzeigen */
                #menu_pageSource { background-image: url("${ProfilePath}/document-search.svg"); }
                /* Erweiterungen für Entwickler */
                #extensionsForDevelopers { background-image: url("${ProfilePath}/addons.svg"); }    
            
            /* Seiteninformationen */
            #menu_pageInfo { background-image: url("${ProfilePath}/document-endnote.svg"); }
            /* Einstellungen */
            #menu_preferences { background-image: url("${ProfilePath}/settings.svg"); }
    
            /* --- Hilfe --- */
    
            /* Hilfe erhalten */
            #menu_openHelp { background-image: url("${ProfilePath}/help.svg"); }
            /* Ideen und Feedback teilen... */
            #feedbackPage { background-image: url("${ProfilePath}/send.svg"); }
            /* Fehlerbehebungsmodus... */
            #helpSafeMode { background-image: url("${ProfilePath}/debugging-workers.svg"); }
            /* Weitere Informationen zur Fehlerbehebung */
            #troubleShooting { background-image: url("${ProfilePath}/more.svg"); }
            /* Betrügerische Website melden... */
            #menu_HelpPopup_reportPhishingtoolmenu { background-image: url("${ProfilePath}/warning.svg"); }
            /* Zu einem neuen Gerät wechseln */
            #helpSwitchDevice { background-image: url("${ProfilePath}/send-to-device.svg"); }
            /* Über Firefox */
            #aboutName { background-image: url("${ProfilePath}/firefox.svg"); }
    
            /* ---------------------------------------------- */
            /* ------------- Kontextmenü Frames ------------- */
            /* ---------------------------------------------- */
            
            /* Aktueller Frame */
            #frame { background-image: url("${ProfilePath}/command-frames.svg"); }
    
                /* <<< Submenu_Aktueller Frame >>> */    
    
                /* Nur diesen Frame anzeigen */
                #context-showonlythisframe { background-image: url("${ProfilePath}/tab.svg"); }
                /* Frame in neuem Tab öffnen */
                #context-openframeintab { background-image: url("${ProfilePath}/open-in-new.svg"); }
                /* Frame in neuem Fenster öffnen */
                #context-openframe { background-image: url("${ProfilePath}/window.svg"); }
                /* Frame neu laden */
                #context-reloadframe { background-image: url("${ProfilePath}/reload.svg"); }
                /*Lesezeichen für diesen Frame hinzufügen */
                #context-bookmarkframe { background-image: url("${ProfilePath}/bookmark-hollow.svg"); }
                /*Frame speichern unter... */
                #context-saveframe { background-image: url("${ProfilePath}/folder-save.svg"); }
                /* Frame drucken... */
                #context-printframe { background-image: url("${ProfilePath}/printer.svg"); }
                /* Bildschirmfoto aufnehmen */
                #context-take-frame-screenshot { background-image: url("${ProfilePath}/screenshot.svg"); }
                /* Frame-Quelltext anzeigen */
                #context-viewframesource { background-image: url("${ProfilePath}/document-search.svg"); }
                /* Frame-Informationen anzeigen */
                #context-viewframeinfo { background-image: url("${ProfilePath}/info.svg"); }
    
            /* ---------------------------------------------- */
            /* ----------- Kontextmenü Adressfeld ----------- */
            /* ---------------------------------------------- */
            /*    
            #urlbar-input-container {
                padding-inline-start: calc(1em + 24px) !important;
                background-position: left 1em center;
                background-repeat: no-repeat;
                background-size: 16px;
                -moz-context-properties: fill, fill-opacity;
                fill: currentColor;
            }
            */
            /* Rückgängig */
            #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_undo"] {
                background-image: url("${ProfilePath}/undo.svg");
            }
            /* Wiederherstellen */
            #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_redo"] {
                background-image: url("${ProfilePath}/sync.svg");
            }
            /* Ausschneiden */
            #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_cut"] {
                background-image: url("${ProfilePath}/edit-cut.svg");
            }
            /* Kopieren */
            #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_copy"] {
                background-image: url("${ProfilePath}/copy.svg");
            }
            /* Einfügen */
            #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_paste"] {    
                background-image: url("${ProfilePath}/paste.svg");
            }
            /* Einfügen & Los */
            #paste-and-go {
                background-image: url("${ProfilePath}/redo.svg");
            }
            /* Löschen */
            #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_delete"] {
                background-image: url("${ProfilePath}/delete.svg");
            }
            /* Alles auswählen */
            #urlbar-input-container .textbox-contextmenu menuitem[cmd="cmd_selectAll"] {
                background-image: url("${ProfilePath}/select-all-on.svg");
            }
    
            /* ------------------------------------------- */
            /* ---------- Symbole der Menuleise ---------- */
            /* ------------------------------------------- */
    
            /* Datei  */
            #file-menu::before { background: url("${ProfilePath}/mail-inbox-all.svg")!important; }
            /* Bearbeiten  */
            #edit-menu::before { background: url("${ProfilePath}/edit.svg")!important; }
            /* Ansicht  */
            #view-menu::before { background: url("${ProfilePath}/content-view.svg")!important; }
            /* Chronik  */
            #history-menu::before { background: url("${ProfilePath}/history.svg")!important; }
            /* Lesezeichen  */
            #bookmarksMenu::before { background: url("${ProfilePath}/bookmark.svg")!important; }
            /* Extras  */
            #tools-menu::before { background: url("${ProfilePath}/toolbox.svg")!important; }
            /* Hilfe  */
            #helpMenu::before { background: url("${ProfilePath}/help.svg")!important; }
    
            /* Einstellungen  */
            #file-menu::before,
            #edit-menu::before,
            #view-menu::before,
            #history-menu::before,
            #bookmarksMenu::before,
            #tools-menu::before,
            #helpMenu::before {
                margin-left: 6px !important;
                content: '' !important;
                display: block !important;
                width: 16px !important;
                height: 16px !important;
                background-repeat: no-repeat !important;
                -moz-context-properties: fill, fill-opacity;
                fill: currentColor;
            }
            #menu_FilePopup,
            #menu_EditPopup,
            #menu_viewPopup,
            #historyMenuPopup,
            #bookmarksMenuPopup,
            #menu_ToolsPopup,
            #menu_HelpPopup {
                margin-top: 5px !important;
            }
    
            /* ------------------------------------ */
            /* *** neuer Button "Erweiterungen" *** */
            /* ******* Symbole im Popup-Menü ****** */
            /* ------------------------------------ */
    
            .unified-extensions-context-menu-pin-to-toolbar {   
                background: url("${ProfilePath}/glyph-pin-16.svg") no-repeat !important;
                background-position: 9px 4px !important;
            }
            .unified-extensions-context-menu-move-widget-up {   
                background: url("${ProfilePath}/Pfeil-hoch_hellgrau.svg") no-repeat !important;
                background-position: 6px 0px !important;
            }
            .unified-extensions-context-menu-move-widget-down {   
                background: url("${ProfilePath}/Pfeil-runter_hellgrau.svg") no-repeat !important;
                background-position: 6px 0px !important;
            }
            .unified-extensions-context-menu-manage-extension {
                background: url("${ProfilePath}/extension.svg") no-repeat !important;
                background-position: 9px 4px !important;
            }
    
            .unified-extensions-context-menu-remove-extension {
                background: url("${ProfilePath}/delete.svg") no-repeat !important;
                background-position: 9px 4px !important;
            }
    
            .unified-extensions-context-menu-report-extension {
                background: url("${ProfilePath}/warning.svg") no-repeat !important;
                background-position: 9px 4px !important;
            }
    
            /* ---------------------------------------------- */
            /* ------------- Kontextmenü Video -------------- */
            /* ---------------------------------------------- */
    
            /* Pause */
            #context-media-pause { background-image: url("${ProfilePath}/pause-1.svg"); }
            /* Abspielen */
            #context-media-play { background-image: url("${ProfilePath}/play-1.svg"); }
            /* Ton aus */
            #context-media-mute { background-image: url("${ProfilePath}/audio-16-mute.svg"); }
            /* Ton an */
            #context-media-unmute { background-image: url("${ProfilePath}//audio-16.svg"); }
            /* Geschwindigkeit */
            #context-media-playbackrate { background-image: url("${ProfilePath}/performance-16.svg"); }
            /* Endlosschleife */
            #context-media-loop { background-image: url("${ProfilePath}/repeat-1.svg"); }
            /* Vollbild */
            #context-video-fullscreen { background-image: url("${ProfilePath}/maximize-1.svg"); }
            /* Vollbild beenden */
            #context-leave-dom-fullscreen { background-image: url("${ProfilePath}/minimize-1.svg"); }
            /* Steuerung ausblenden    ! */
            #context-media-hidecontrols { display: none !important; }
            /* Steuerung anzeigen    ! */
            #context-media-showcontrols { display: none !important; }
    
            /* -------------------------- */
    
            /* Video in neuem Tab öffnen */
            #context-viewvideo { background-image: url("${ProfilePath}/session.svg");; }
            /* In Bild-im-Bild ansehen */
            #context-video-pictureinpicture { background-image: url("${ProfilePath}/info.svg"); }
    
            /* -------------------------- */
    
            /* Standbild aufnehmen...    ! */
            #context-video-saveimage { display: none !important; } 
            /* Video speichern unter...    ! */
            #context-savevideo { display: none !important; }
            /* Video-Adresse kopieren    ! */
            #context-copyvideourl { display: none !important; }
            /* Video per E-Mail senden...    ! */
            #context-sendvideo { display: none !important; }
    
            #context-sep-setbackground { display: none !important; }
    
    
            .bookmark-item[container] {
                list-style-image: url("${ProfilePath}/folder-fat.svg") !important;
              }
    
    
            `), null, null);
    
    //   `;
    //
    //   var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
    //   var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
       sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
    })();
    Alles anzeigen

    Und hier das CSS für die Bibliothek:

    CSS
    @-moz-document url-prefix("chrome://browser/content/downloads/contentAreaDownloadsView.xhtml"),
                   url-prefix("chrome://browser/content/places/places.xhtml") {
    
            /* ---------------------------------------------- */
            /* ---------- Kontextmenüs Bibliothek ----------- */
            /* ---------------------------------------------- */
    
        /* Öffnen */
        #placesContext_open { background-image: url("../icons/open.svg"); }
        /* Alle Lesezeichen öffnen */
        #placesContext_openBookmarkContainer\:tabs { background-image: url("../icons/bookmark.svg"); }
        /* In neuem Tab öffnen */
        #placesContext_open\:newtab { background-image: url("../icons/tab-open.svg"); }
        /* In neuem Tab in Umgebung öffnen */
    /*    #placesContext_open\:newcontainertab { background-image: url("../icons/default-browser-red.svg"); }   */
        /* Alle in Tabs öffnen */
        #placesContext_openContainer\:tabs { background-image: url("../icons/bookmark.svg"); }
        /* In neuem Fenster öffnen */
        #placesContext_open\:newwindow { background-image: url("../icons/session.svg"); }
        /* In neuem privaten Fenster öffnen */
        #placesContext_open\:newprivatewindow { background-image: url("../icons/privateBrowsing.svg"); }
        /* In Ordner anzeigen */
        #placesContext_showInFolder { background-image: url("../icons/default-browser-red.svg"); }
        /* Lesezeichen löschen */
        #placesContext_deleteBookmark { background-image: url("../icons/delete.svg"); }
        /* Schlagwort entfernen */
        #placesContext_removeTag { background-image: url("../icons/delete.svg"); }
        /* Ordner löschen */
        #placesContext_deleteFolder { background-image: url("../icons/delete.svg"); }
        /* Löschen*/
        #placesContext_delete { background-image: url("../icons/delete.svg"); }
        /* Seite entfernen */
        #placesContext_delete_history { background-image: url("../icons/delete.svg"); }
        /* Gesamte Website vergessen */
        #placesContext_deleteHost { background-image: url("../icons/delete.svg"); }
        /* Nach Name sortieren */
        #placesContext_sortBy\:name { background-image: url("../icons/arrow-down-a-z.svg"); }
        /* Ausschneiden */
        #placesContext_cut { background-image: url("../icons/edit-cut.svg"); }
        /* Kopieren */
        #placesContext_copy { background-image: url("../icons/copy.svg"); }
        /* Einfügen */
        #placesContext_paste_group { background-image: url("../icons/paste.svg"); }
        /* Lesezeichen hinzufügen… */
        #placesContext_new\:bookmark { background-image: url("../icons/book-add.svg"); }
        /* Ordner hinzufügen… */
        #placesContext_new\:folder { background-image: url("../icons/folder-new.svg"); }
        /* Trennlinie hinzufügen */
        #placesContext_new\:separator { background-image: url("../icons/horizontal-line.svg"); }
        /* Lesezeichen für Seiten hinzufügen… */
        #placesContext_createBookmark { background-image: url("../icons/bookmark-hollow.svg"); }
        /* Lesezeichen verwalten */
        #placesContext_showAllBookmarks { background-image: url("../icons/default-browser-red.svg"); }
        /* In neuem Tab in Umgebung öffnen (ausgeblendet)*/
        #placesContext_open\:newcontainertab { display: none !important; }
        /* Ähnliche Dateien immer öffnen */
        .downloadAlwaysOpenSimilarFilesMenuItem { background-image: url("../icons/similar-files-open.svg"); }
        /* In Firefox öffnen */
        .downloadUseSystemDefaultMenuItem { background-image: url("../icons/firefox.svg"); }
        /* Immer in Firefox öffnen */
        .downloadAlwaysUseSystemDefaultMenuItem { background-image: url("../icons/firefox.svg"); }
        /* In Ordner anzeigen */
        .downloadShowMenuItem { background-image: url("../icons/open.svg"); }
        /* Download-Link kopieren */
        .downloadCopyLocationMenuItem { background-image: url("../icons/link.svg"); }
        /* Löschen */
        .downloadDeleteFileMenuItem { background-image: url("../icons/delete.svg"); }
        /* Aus Chronik entfernen */
        .downloadRemoveFromHistoryMenuItem { background-image: url("../icons/delete.svg"); }
        /* Liste leeren */
        /* #downloadsContextMenu > menuitem:nth-child(14) { background-image: url("../icons/default-browser-red.svg"); }    */
        [data-l10n-id="downloads-cmd-clear-downloads"] { background-image: url("../icons/clear-list.svg"); }
    
        /* Zur Download-Seite gehen */
        .downloadOpenReferrerMenuItem { background-image: url("../icons/default-browser-red.svg"); }
        /* Pause */
        .downloadPauseMenuItem { background-image: url("../icons/circle-pause.svg"); }
        /* Fortsetzen*/
        .downloadResumeMenuItem { background-image: url("../icons/circle-play.svg"); }
    
    }
    Alles anzeigen


    Und die "neuen" Grafiken dürfen auch nicht fehlen!

    icons.zip

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

    • Mira_Belle
    • 12. September 2023 um 10:27

    lenny2

    Es tut mir leid Dir dann mitteilen zu müssen, dass dann irgendwo, irgendwie sich Code, wie auch immer, beharkt!

    Du wirst nicht um hinkommen, eine genaue Fehleranalyse zu machen, was bedeutet, dass Du erst einmal

    allen Code "ausschaltest" bis auch das Script für die Scrolleiste(n).

    Und nach und nach einen Code, nach dem anderen wieder aktivierst und schaust, ob der Fehler wieder auftritt.

    Wenn entsprechende Datei gefunden ist, hier posten und wir können schauen, wo es klemmt.

    Zitat von Speravir
    Zitat von Mira_Belle

    Bitte testen und berichten!

    Was genau hast Du geändert?

    Es ist ein etwas anderes Script, Änderungen kannst Du, wenn Du magst, in der Historie nach verfolgen.

    Denn so genau weiß ich jetzt aus dem Effeff auch nicht mehr, was da anders ist.

    Ich müsste die Dateien also erst einmal direkt miteinander vergleichen.

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

    • Mira_Belle
    • 11. September 2023 um 18:56
    Zitat von lenny2

    Hallo,

    ...

    Das Skript custom_scrollbars.uc.js hat einen Fehler in Firefox v117.0, v118b7 ...

    Bitte testen und berichten!

    JavaScript
    // Scrollbar.uc.js
    
    "use strict";
    /* Firefox userChrome.js tweaks - 'Custom Scrollbars' for Firefox ************************************************************ */
    /* Original by Aris (aris-addons@gmx.net)************************************************************************************* */
    /* Github: https://github.com/Aris-t2/CustomJSforFx/blob/master/scripts/custom_scrollbars.uc.js
    /* *************************************************************************************************************************** */
    /* Customized by Mira********************************************************************************************************* */
    /* https://www.camp-firefox.de/forum/thema/135133-custom-scrollbars-uc-js-anpassen/ ****************************************** */
    /* Scrollbar.v1.0.6.js    https://www.camp-firefox.de/forum/thema/135133/?postID=1207718#post1207718************************** */
    /* https://www.camp-firefox.de/forum/thema/136152/?postID=1222989#post1222989************************************************* */
    /* Scrollbar.v2.0.2.js    https://www.camp-firefox.de/forum/thema/136167/?postID=1223096#post1223096************************** */
    /* Scrollbar.v2.0.3.js    https://www.camp-firefox.de/forum/thema/136167/?postID=1223124#post1223124************************** */
    /* Scrollbar.v2.0.5.js    https://www.camp-firefox.de/forum/thema/136167/?postID=1223143#post1223143************************** */
    /* Scrollbar.v2.0.6.1.js  https://www.camp-firefox.de/forum/thema/136167/?postID=1223162#post1223162************************** */
    /* *************************************************************************************************************************** */
    /* Custom Scrollbars for Firefox ********************************************************************************************* */
    /* Version: 2.0.6.1 for Firefox 111+ ***************************************************************************************** */
    /* ******************************************************************************************************************************
    
    README
    
      about:config >
        widget.windows.overlay-scrollbars.enabled > false (Windows)
        widget.gtk.overlay-scrollbars.enabled > false (Linux)
      [!] The above preferences have to be set to 'false' for this code to work
     
      [!] DER STARTUP-CACHE MUSS NACH JEDER ÄNDERUNG GELÖSCHT WERDEN!
      -> Ordner 'startupCache' finden: Adressleiste > about:profiles > Lokales Verzeichnis > Ordner öffnen > startupCache
      -> Firefox schließen
      -> Inhalt des 'startupCache'-Ordners löschen
    
      Alternativ mit einem JavaScipt!
      -> https://github.com/Endor8/userChrome.js/blob/master/Firefox%2087/RestartFirefoxButtonM.uc.js
     
      Anpassungen vornehmen > Werte ändern
      - Optionen aktivieren/deaktivieren: true <-> false
      - Farbe
        - Name: red, blue, transparent 
        - Hexcode: #33CCFF, #FFF
        - rgb(a): rgba(0,0,255,0.8)
        - hsl(a): hsla(240,100%,50%,0.8)
      - Zahlen: 1, 2, 3 ... 10, 11, 12 ...
      - Deckkraft (in Dezimalzahlen): 0.0 bis 1.0 z.B. 1.4 oder 1.75
      - Farbverläufe: linear-gradient(direction, color, color, color)
      - Beispiel für Farbverläufe: linear-gradient(to right, blue, #33CCFF, rgba(0,0,255,0.8))
      - vordefinierte Farbverläufe: transparent,rgba(255,255,255,0.5),transparent -> transparent,rgba(255,255,255,0.0),transparent
      - keine Farbe oder keine Farbwerte -> verwende "unset"
    */
    /* *************************************************************************************************************************** */
    (function() {
    
      // PROFILE PHATH "CALCULATE"
      let ProfileDirectory = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
      // GENERAL SCROLLBAR SETTINGS
      const custom_scrollbar_size_value = 17;               // in px // default: custom_scrollbar_size_value = 17
      // CUSTOM SCROLLBAR SETTINGS ("custom_scrollbar_" --> "cs_")
      const custom_scrollbars = true;                       // default: custom_scrollbars = true
      const custom_scrollbar_arrows = true;                 // default: custom_scrollbar_arrows = true
      const cs_thumb_border = 1;                            // default: cs_thumb_border = 0 / in px
      const cs_thumb_roundness = 9;                         // default: cs_thumb_roundness = 0 / in px 7
      const cs_buttons_border = 0;                          // default: cs_buttons_border = 0 / in px
      const cs_buttons_roundness = 0;                       // default: cs_buttons_roundness = 0 / in px
      const cs_thumb_minimal_size = 12;                     // default: cs_thumb_minimal_size = 12; / in px
      const cs_ignore_color_gradients = true;               // default: cs_ignore_color_gradients = false / 'flat' scrollbars
    // CUSTOM SCROLLBAR COLORS/GRADIENTS
    // - background
      const cs_background_color = "#5b5b66";                // default: cs_background_color = "#DDDDDD"
      let cs_background_image_vertical = "unset";           // default: cs_background_image_vertical = "linear-gradient(to right,transparent,rgba(255,255,255,0.5),transparent)"
      let cs_background_image_horizontal = "unset";         // default: cs_background_image_horizontal = "linear-gradient(to bottom,transparent,rgba(255,255,255,0.5),transparent)"
      let cs_arrows_on_buttons_buttons_size = 1.0;          // default: cs_arrows_on_buttons_buttons_size = 1.0
    // - corner
      const cs_corner_background_color = "#bfbfbf";         // default: cs_corner_background_color = "#DDDDDD" / - corner
      let cs_corner_background_image = "unset";             // default: cs_corner_background_image = "linear-gradient(45deg,transparent 30%,rgba(255,255,255,0.5) 50%,transparent 70%),linear-gradient(-45deg,transparent 30%,rgba(255,255,255,0.5) 50%,transparent 70%)"
    // - thumb/slider
      const cs_thumb_color = "#bfbfbf";                     // default: cs_thumb_color = "#33CCFF" / thumb/slider
      let cs_thumb_image_vertical = "unset";                // default: cs_thumb_image_vertical = "linear-gradient(to right,transparent,rgba(255,255,255,0.5),transparent)"
      let cs_thumb_image_horizontal = "unset";              // default: cs_thumb_image_horizontal = "linear-gradient(to bottom,transparent,rgba(255,255,255,0.5),transparent)"
      const cs_thumb_hover_color = "orange";                // default: cs_thumb_hover_color = "#66FFFF"
      let cs_thumb_hover_image_vertical = "unset";          // default: cs_thumb_hover_image_vertical = "linear-gradient(to right,transparent,rgba(255,255,255,0.5),transparent)"
      let cs_thumb_hover_image_horizontal = "unset";        // default: cs_thumb_hover_image_horizontal = "linear-gradient(to bottom,transparent,rgba(255,255,255,0.5),transparent)"
      const cs_thumb_border_color = "#5b5b66";              // default: cs_thumb_border_color = "#33CCFF"
    // - buttons
      const cs_buttons_color = "#5b5b66";                   // default: cs_buttons_color = "#66FFFF" "#5b5b66"/ buttons
      let cs_buttons_image_vertical = "unset";              // default: cs_buttons_image_vertical = "linear-gradient(to right,transparent,rgba(255,255,255,0.5),transparent)"
      let cs_buttons_image_horizontal = "unset";            // default: cs_buttons_image_horizontal = "linear-gradient(to bottom,transparent,rgba(255,255,255,0.5),transparent)"
      const cs_buttons_hover_color = "#5b5b66";             // default: cs_buttons_hover_color = "#33CCFF"
      const cs_buttons_border_color = "#5b5b66";            // default: cs_buttons_border_color = "#33CCFF" "#5b5b66"
      let cs_buttons_hover_image_vertical = "unset";        // default: cs_buttons_hover_image_vertical = "linear-gradient(to right,transparent,rgba(255,255,255,0.5),transparent)"
      let cs_buttons_hover_image_horizontal = "unset";      // default: cs_buttons_hover_image_horizontal = "linear-gradient(to bottom,transparent,rgba(255,255,255,0.5),transparent)"
    
    /* *************************************************************************************************************************** */
      // unset background image color gradients -> flat scrollbars
      if(cs_ignore_color_gradients === true)
        cs_background_image_vertical
        = cs_background_image_horizontal
        = cs_corner_background_image
        = cs_thumb_image_vertical
        = cs_thumb_image_horizontal
        = cs_thumb_hover_image_vertical
        = cs_thumb_hover_image_horizontal
        = cs_buttons_image_vertical
        = cs_buttons_image_horizontal
        = cs_buttons_hover_image_vertical
        = cs_buttons_hover_image_horizontal
        = "unset";
    
      let custom_scrollbars_code='';
      let custom_scrollbar_arrows_code='';
     
      if(custom_scrollbars === true)
        custom_scrollbars_code=`
          slider, scrollcorner, scrollbar thumb, scrollbar scrollbarbutton {
            appearance: auto;
            -moz-default-appearance: none !important;
          }
          slider {
            background-color: ${cs_background_color} !important;
          }
          scrollbar[orient="vertical"] slider {
            background-image: ${cs_background_image_vertical} !important;
          }
          scrollbar[orient="horizontal"] slider {
            background-image: ${cs_background_image_horizontal} !important;
          }
          scrollcorner {
            background-color: ${cs_corner_background_color} !important;
            background-image: ${cs_corner_background_image} !important;
          }
          scrollbar thumb {
            background-color: ${cs_thumb_color} !important;
            border-radius: ${cs_thumb_roundness}px !important;
            box-shadow: inset 0 0 0 ${cs_thumb_border}px ${cs_thumb_border_color} !important;
          }
          scrollbar thumb[orient="vertical"] {
            background-image: ${cs_thumb_image_vertical} !important;
            min-height: ${(cs_thumb_minimal_size+cs_thumb_roundness+cs_thumb_border)}px !important;
          }
          scrollbar thumb[orient="horizontal"] {
            background-image: ${cs_thumb_image_horizontal} !important;
            min-width: ${(cs_thumb_minimal_size+cs_thumb_roundness+cs_thumb_border)}px !important;
          }
          scrollbar thumb:hover, scrollbar thumb:active {
            background-color: ${cs_thumb_hover_color} !important;
          }
          scrollbar thumb[orient="vertical"]:hover, scrollbar thumb[orient="vertical"]:active {
            background-image: ${cs_thumb_hover_image_vertical} !important;
          }
          scrollbar thumb[orient="horizontal"]:hover, scrollbar thumb[orient="horizontal"]:active {
            background-image: ${cs_thumb_hover_image_horizontal} !important;
          }
          scrollbar scrollbarbutton {
            background-color: ${cs_buttons_color} !important;
            border-radius: ${cs_buttons_roundness}px !important;
            box-shadow: inset 0 0 0 ${cs_buttons_border}px ${cs_buttons_border_color} !important;
            height: 17px !important;
            width: 17px !important;
          }
          scrollbar[orient="vertical"] scrollbarbutton {
            background-image: ${cs_buttons_image_vertical} !important;
          }
          scrollbar[orient="horizontal"] scrollbarbutton {
            background-image: ${cs_buttons_image_horizontal} !important;
          }
          scrollbar scrollbarbutton:hover {
            background-color: ${cs_buttons_hover_color} !important;
          }
          scrollbar[orient="vertical"] scrollbarbutton:hover {
            background-image: ${cs_buttons_hover_image_vertical} !important;
          }
          scrollbar[orient="horizontal"] scrollbarbutton:hover {
            background-image: ${cs_buttons_hover_image_horizontal} !important;
          }
        `;
        
      if(custom_scrollbar_arrows === true)
        custom_scrollbar_arrows_code=`
          scrollbarbutton[type="increment"],
          scrollbar[orient="vertical"] scrollbarbutton[type="decrement"],
          scrollbarbutton[type="increment"],
          scrollbar[orient="horizontal"] scrollbarbutton[type="decrement"] {
            background-repeat: no-repeat;
            background-position: center !important;  */
          }
          scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"] {
            background-image: url("${ProfileDirectory}/Pfeil-hoch_hellgrau.svg") !important;
          /*  background-position: top !important;  */
          }
          scrollbar[orient="vertical"] > scrollbarbutton[type="increment"] {
            background-image: url("${ProfileDirectory}/Pfeil-runter_hellgrau.svg") !important;
          /*  background-position: bottom !important;  */
          }
          scrollbar[orient="horizontal"] > scrollbarbutton[type="decrement"] {
            background-image: url("${ProfileDirectory}/Pfeil-links_hellgrau.svg") !important;
          /*  background-position: left !important;  */
          }
          scrollbar[orient="horizontal"] > scrollbarbutton[type="increment"] {
            background-image: url("${ProfileDirectory}/Pfeil-rechts_hellgrau.svg") !important;
          /*  background-position: right !important;  */
          }
    
          /* hover */
    
          scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"]:hover {
            background-image: url("${ProfileDirectory}/Pfeil-hoch_orange.svg") !important;
          }
          scrollbar[orient="vertical"] > scrollbarbutton[type="increment"]:hover {
            background-image: url("${ProfileDirectory}/Pfeil-runter_orange.svg") !important; */
          }
          scrollbar[orient="horizontal"] > scrollbarbutton[type="decrement"]:hover {
            background-image: url("${ProfileDirectory}/Pfeil-links_orange.svg") !important;
          }
          scrollbar[orient="horizontal"] > scrollbarbutton[type="increment"]:hover {
            background-image: url("${ProfileDirectory}/Pfeil-rechts_orange.svg") !important;
          }
          scrollbar[orient="vertical"] > scrollbarbutton {
            height: ${(custom_scrollbar_size_value*cs_arrows_on_buttons_buttons_size)}px !important;
            max-width: ${custom_scrollbar_size_value}px !important;
          }
          scrollbar[orient="horizontal"] > scrollbarbutton {
            width: ${(custom_scrollbar_size_value*cs_arrows_on_buttons_buttons_size)}px !important;
            max-height: ${custom_scrollbar_size_value}px !important;
          }
        `;
    
      Components.classes["@mozilla.org/content/style-sheet-service;1"]
        .getService(Components.interfaces.nsIStyleSheetService)
          .loadAndRegisterSheet(Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
            ${custom_scrollbars_code}
            ${custom_scrollbar_arrows_code}
      `), null, null),
    
      Components.classes["@mozilla.org/content/style-sheet-service;1"]
        .getService(Components.interfaces.nsIStyleSheetService).AGENT_SHEET);
    
    })()
    Alles anzeigen
  • Restartbutton von base64 in SVG ändern

    • Mira_Belle
    • 11. September 2023 um 18:39

    BarbaraZ-

    Du wolltest das "blaue Reload" Symbol als Vektorgrafik haben?

    Ich habe es Dir einmal erstellt.

    77ec520f-2957-47c6-b725-e1c94c7612ab.zip

    Symbolname musst Du halt nach Deinem Geschmack ändern.


    Zitat von BarbaraZ-

    2002Andreas, Danke. Perfekt. :thumbup:

    Habe trotzdem noch eine Verständnisfrage.

    Warum klappt es hier mit dem Kurzpfad nicht? Liegt es am Script, also an Java?

    Ich nutzte dieses nämlich sehr oft für Codes, da klappt es tadellos.

    JavaScript
    // Restart button script for Firefox 60+ by Aris
    //
    // left-click on restart button: normal restart
    // middle-click on restart button: restart + clear caches
    // right-click on restart button: no special function
    //
    // based on 'Quit' button code by 2002Andreas
    // restart code from Classic Theme Restorer add-on
    // invalidate caches from Session Saver add-on
    
    // geändert von Mira
    
    (function() {
    
    
    
        try {
    //      Components.utils.import("resource:///modules/CustomizableUI.jsm");
    //      ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
          var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
          var appversion = parseInt(Services.appinfo.version);
          
          var button_label = "Restart";
         
          CustomizableUI.createWidget({
            id: "uc-restart", // button id
            defaultArea: CustomizableUI.AREA_NAVBAR,
            removable: true,
            label: button_label, // button title
            tooltiptext: button_label, // tooltip title
            onClick: function(event) {
              
              var cancelQuit   = Components.classes["@mozilla.org/supports-PRBool;1"].createInstance(Components.interfaces.nsISupportsPRBool);
              var observerSvc  = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
                    
              if(event.button=='1') { // middle-click - clear caches
                Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).invalidateCachesOnRestart();
              }
              
              if(event.button=='0' || event.button=='1') { // left/middle-click - restart
                observerSvc.notifyObservers(cancelQuit, "quit-application-requested", "restart");
                    
                if(cancelQuit.data) return false;
                        
                Services.startup.quit(Services.startup.eRestart | Services.startup.eAttemptQuit);
              }
            },
            onCreated: function(button) {
              return button;
            }
                
          });
          
          let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner
          let icon = "77ec520f-2957-47c6-b725-e1c94c7612ab.svg"; // Name & Dateiendung des anzuzeigenden Symbols!  
          
          if(appversion < 92) icon = "chrome://browser/skin/reload.svg";
          
          // style button icon
          var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
            \
              #uc-restart .toolbarbutton-icon {\
                list-style-image: url("'+ProfilePath+icon+'"); /* icon / path to icon */ \
                transform: scaleX(-1); /* icon mirroring */\
                fill: red; /* icon color name/code */\
              }\
            \
          '), null, null);
          
          sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
          
        } catch (e) {
            Components.utils.reportError(e);
        };
        
        })();
    Alles anzeigen

    Versuche es mal hiermit.

    Nach dem Du das "neue" Symbol heruntergeladen hast.

  • Button ändern bei einem Skript

    • Mira_Belle
    • 10. September 2023 um 14:39

    Und da es ja besser ist Vektorgrafiken zu nutzen =>

    Create, Edit or Convert PSD & PSB files to PDF & image formats

  • Symbole in den Kontextmenüs [ Update ]

    • Mira_Belle
    • 9. September 2023 um 11:02
    Zitat von 2002Andreas

    Dann hast du ja noch einiges zu tun.

    Du solltest besser das schöne Wetter nutzen, und andere Dinge machen ;)

    Ja, weiß ich, deshalb schrieb ich ja "Dieses Wochenende wird hier, so glaube ich, nicht mehr viel passieren." ;)

    Ich sammle ja gerade auch nur noch Ideen ein,

    und nur wenn ich Zeit und Lust habe, setze ich mich abends, oder Nachts, wenn mich meine Schlafstörungen

    mal wieder nicht zur Ruhe kommen lassen, hin und mache ein bisschen was.

    Ach und danke für das ZIP, wo ich diese Grafiken sehe, da kommen mir doch glatt Ideen, wie das Symbol aussehen könnte.

Unterstütze uns!

Jährlich (2025)

105,8 %

105,8% (687,41 von 650 EUR)

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