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

Beiträge von Mitleser

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

    • Mitleser
    • 6. Mai 2025 um 09:10

    Speravir, könnte es auch sein, dass einfach nur der Reload im falschen Fenster stattfindet? Dass z.b.: event.target.ownerGlobal.BrowserCommands.reloadSkipCache();statt BrowserCommands.reloadSkipCache(); schon reichen würde? Über dieses Script diskutierten wir schon mal, und hier geht es:

    icons.zip

    JavaScript
    // JavaScript Document
    // B_UserPrefAnimationMode.uc.js
    
    // Das Script erstellt einen Button, der in about:config character/string-Variablen ändert. In der UserConfiguration unter 'const charPref' kann die zu ändernde Einstellung festgelegt werden. Das icon/label/tooltiptext kann in der UserConfiguration dem jeweiligen Zustand angepasst werden (normal/once/none).
    // Für das mitgelieferte Icon als .svg-Datei mit [moz-context-properties] ändert das Script die Einstellung [svg.context-properties.content.enabled] in about:config auf 'true'.
    // In einem neuen Profil ist die Einstellung in about:config 'image.animation_mode, normal' gesetzt. Der Button schaltet per Linksklick einen Zustand weiter (von 'image.animation_mode, normal' auf 'once', von 'once' auf 'none' und von 'none' auf 'normal'. Beim Umschalten wird der Seiteninhalt des AKTIVEN Tabs neu geladen.
    
    (function() {
      if (!window.gBrowser)
    	return;
    const
    // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    		 id = 'UserPref-iA_m-button', // Id des neuen Buttons
       charPref = 'image.animation_mode', // Einstellung in about:config deren character-Variable geschaltet werden soll
      labelNorm = 'Normale Gifanimation (Schleife)', // Bezeichnung des neuen Buttons bei charPref=normal
      labelOnce = 'Einmalige Gifanimation', // Bezeichnung des neuen Buttons bei charPref=once
      labelNone = 'Keine Gifanimation', // Bezeichnung des neuen Buttons bei charPref=none
     ttTextNorm = 'Normale Gifanimation (Schleife)', // Tooltiptext
     ttTextOnce = 'Einmalige Gifanimation',
     ttTextNone = 'Keine Gifanimation',
    // Icon-------------------------------------------------------
       iconNorm = '16-control-panel-20_moz.svg',  // [Name.Dateiendung] des anzuzeigenden Symbols für charPref=normal
       iconOnce = '16-control-panel-19_moz.svg',  // [Name.Dateiendung] des anzuzeigenden Symbols charPref=once
       iconNone = '16-control-panel-18_moz.svg',  // [Name.Dateiendung] des anzuzeigenden Symbols für charPref=none
        bgImage = '#f9f9f9', // Farbe des Indikators (zur Unterscheidung mehrerer UserPref-buttons)
       iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon beinhaltet
    iconColNorm = 'forestgreen',  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für charPref=normal, bei anderen Icons hat const iconColNorm keine Funktion)
    iconColOnce = 'goldenrod',  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für charPref=once, bei anderen Icons hat const iconColOnce keine Funktion)
    iconColNone = 'firebrick',  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für charPref=none, bei anderen Icons hat const iconColNone keine Funktion)
    // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
     curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    //const end
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
    //----  
    CustomizableUI.createWidget({
        id: id,
    	type: 'button',
        defaultArea: CustomizableUI.AREA_NAVBAR,
     
        onCreated: (button) => {
    		button.style.MozContextProperties = 'fill, stroke, fill-opacity';
    //bgImage
    		button.style = 'background-image:linear-gradient('+bgImage+','+bgImage+'); background-repeat: no-repeat; background-size: 4px 4px; background-position: left 2px top calc(50% - 8px);';
    //start
    if (Services.prefs.getCharPref(charPref) == 'normal' ) {
    		button.style.fill = iconColNorm;
    		button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNorm + '")';
        	button.setAttribute('label', labelNorm);
        	button.setAttribute('tooltiptext', ttTextNorm);
    }
    else
    if (Services.prefs.getCharPref(charPref) == 'once' ) {
    		button.style.fill = iconColOnce;
    		button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconOnce + '")';
        	button.setAttribute('label', labelOnce);
        	button.setAttribute('tooltiptext', ttTextOnce);
    }
    else
    if (Services.prefs.getCharPref(charPref) == 'none' ) {
    		button.style.fill = iconColNone;
    		button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNone + '")';
        	button.setAttribute('label', labelNone);
        	button.setAttribute('tooltiptext', ttTextNone);
    }
    //click
    button.addEventListener('click', () => {
    if (event.button == 0) {
      event.target.ownerGlobal.BrowserCommands.reloadSkipCache();
    	if (Services.prefs.getCharPref(charPref) == 'normal' ) {
    		Services.prefs.setCharPref(charPref, 'once');
    		button.style.fill = iconColOnce;
    		button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconOnce + '")';
        	button.setAttribute('label', labelOnce);
        	button.setAttribute('tooltiptext', ttTextOnce);
    	}
    	else
    	if (Services.prefs.getCharPref(charPref) == 'once' ) {
    		Services.prefs.setCharPref(charPref, 'none');
    		button.style.fill = iconColNone;
    		button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNone + '")';
        	button.setAttribute('label', labelNone);
        	button.setAttribute('tooltiptext', ttTextNone);
    	}
    	else
    	if (Services.prefs.getCharPref(charPref) == 'none' ) {
    		Services.prefs.setCharPref(charPref, 'normal');
    		button.style.fill = iconColNorm;
    		button.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNorm + '")';
        	button.setAttribute('label', labelNorm);
        	button.setAttribute('tooltiptext', ttTextNorm);
    	}
    }
    });
    //----
    	}
    });
    //----
    })();
    Alles anzeigen

    Dateien

    icons.zip 1,61 kB – 23 Downloads
  • Selektor für kleinen Pfeil in CSS-Code zum extra-config-menü.uc.js ab v139

    • Mitleser
    • 2. Mai 2025 um 21:13

    Ja stimmt! Bleibt die Frage ob es überhaupt funktioniert in Nightly?

  • Selektor für kleinen Pfeil in CSS-Code zum extra-config-menü.uc.js ab v139

    • Mitleser
    • 2. Mai 2025 um 20:46

    Hallo FuchsFan , ich habe leider keine Möglichkeiten zum testen im Nightly, habe mich aber mit deinem Problem beschäftigt. Geht das im Nightly? Als Kurzfassung?

    CSS
    #ExtraConfigMenu-popup :is([id^="submenu-"]):hover::after {	}
  • Was hört Ihr gerade?

    • Mitleser
    • 29. März 2025 um 20:29

    Mark Knopfler - Going Home- Theme of the Local Hero - Live London

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 16. März 2025 um 22:00

    Ja, genau.

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 16. März 2025 um 19:47
    Zitat von 2002Andreas

    Zeile 7 + 24 auskommentiert!

    Du hast Zeile 7 auskommentiert; also gibt es keine Variablendeklinaton! Das dass nicht klappt sollte dir klar sein.

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 16. März 2025 um 18:51
    Zitat von Mira_Belle

    Und wie ich schon einmal schrieb, schau in die Konsole,
    da wird mit Sicherheit ein Fehler angezeigt!

    Die Fehlermeldung hätte ich gerne. Als Screen?

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 16. März 2025 um 16:48
    Zitat von Sören Hentzschel

    Wieso macht man so einen Blödsinn, sich als Nutzer veralteter Browser auszugeben?

    Ja , stimmt. Ein Update des AddOns mit aktuellen Browsersignaturen wäre wünschenswert.

    Zitat von Sören Hentzschel

    wenn man Browserentwickler ist.

    Du meintest sicherlich Websiteentwickler, Webdesigner oder auch Onlinedesigner.

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 16. März 2025 um 16:04
    Zitat von 2002Andreas

    Mit welcher Firefox Version hast du das denn getestet? Laut deinem User-Agenten hattest du eben Fx 130.

    Selbstverständlich 136.01 und jetzt sollte der UserAgent Windows/Chrome128 anzeigen...

    EDIT: du testet auf 137/138; nun verstehe ich auch deine Frage...Hier läufts auf 136.01, eine andere Testmöglichkeit habe ich leider nicht
    EDIT2: Das AddOn ist hier kontraproduktiv, deshalb habe ich dieses Forum auf die Whitelist gesetzt, mein Fehler...

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 16. März 2025 um 15:07

    Dann weiß ich auch nicht mehr weiter. Hier auf Linux Mint 22.1 funktioniert es.


  • Erweiterungs-Button verschwunden

    • Mitleser
    • 16. März 2025 um 14:33
    Zitat von Mira_Belle

    Und wie ich schon einmal schrieb, schau in die Konsole,
    da wird mit Sicherheit ein Fehler angezeigt!

    Hier nicht. Ist aber auch egal...Hier funzt es so mit allen Verschiebescripts
    (PanelUI-button, nav-bar-overflow-button, unified-extensions-button) einwandfrei. Hättest Du mal einen Screen von der Fehlermeldung?

    JavaScript
    //B_Move_Extensions.uc.js
    (function() {
      if (!window.gBrowser) return;
    
      /* Konfiguration */
      const origID = "unified-extensions-button",// ID des originalen Buttons
    		 label = "Erweiterungen",
       tooltiptext = "Erweiterungen-Button";
      /* Ende Konfiguration */
    
      const menuButton = document.getElementById(origID),
            buttonID = 'ucjs_' + origID;
    
      if (!CustomizableUI.getPlacementOfWidget( buttonID )) {
        try {
          CustomizableUI.createWidget({
            id: buttonID,
            type: 'custom',
            defaultArea: CustomizableUI.AREA_NAVBAR,
            onBuild: function(aDocument) {
              let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbaritem');
              toolbaritem.id = buttonID;
              toolbaritem.className = 'chromeclass-toolbar-additional';
    //          toolbaritem.setAttribute('label', label);
              return toolbaritem;
            }
          });
        } catch(e) {
          menuButton.style.display = 'none';
          return;
        };
      };
    
      setTimeout(function() {
       document.getElementById(buttonID).appendChild(menuButton);
       menuButton.setAttribute('consumeanchor', buttonID);
       menuButton.setAttribute('label', label);
       menuButton.setAttribute('tooltiptext', tooltiptext);
      }, 0);
    
    }());
    Alles anzeigen
  • Erweiterungs-Button verschwunden

    • Mitleser
    • 15. März 2025 um 16:22
    Zitat von Sören Hentzschel

    Das spielt keine Rolle, wie oft die Variable verwendet wird. Wenn du die Variablen-Deklaration in Zeile 7 löschst, was du ja machst, wenn du die Zeile auskommentierst, hast du einen Script-Fehler, sobald du diese verwendest.

    Ja, ist klar.
    Beide Zeilen (24 und 37) bewirken das gleiche. Also könnte eine gelöscht werden?
    Genau Zeile 24 (siehe Beitrag #49) führt bei mir eben zum Verschwinden des Buttons...???
    Wenn gelöscht, dann eben nicht; ich empfinde das als schon als sehr merkwürdig.

    Ich beziehe mich auf diesen Post:

    Zitat von BrokenHeart

    Ich hatte auch zwischenzeitlich wieder einen Zustand, wo der Button wie beim TE ganz verschwunden war.

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 15. März 2025 um 14:53

    Danke für den Tip! Und lies bitte nochmal #49.

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 15. März 2025 um 14:42

    Die Variable wird zweimal angewendet: In Zeile 24 sowie in Zeile 37.

  • Erweiterungs-Button verschwunden

    • Mitleser
    • 15. März 2025 um 14:26

    Auch die 'Verschiebescripte' haben noch einen Fehler: Wenn das label in Zeile 7 auskommentiert ist, verschwindet der Button. Das liegt wiederum am label in Zeile 24. Wird die Zeile gelöscht, funzt das Script auch ohne Label in Zeile 7 einwandfrei.
    Referenz für die Zeilennummern:

    JavaScript
    //B_Move_Extensions.uc.js
    (function() {
      if (!window.gBrowser) return;
    
      /* Konfiguration */
      const origID = "unified-extensions-button",// ID des originalen Buttons
    		 label = "Erweiterungen",
       tooltiptext = "Erweiterungen-Button";
      /* Ende Konfiguration */
    
      const menuButton = document.getElementById(origID),
            buttonID = 'ucjs_' + origID;
    
      if (!CustomizableUI.getPlacementOfWidget( buttonID )) {
        try {
          CustomizableUI.createWidget({
            id: buttonID,
            type: 'custom',
            defaultArea: CustomizableUI.AREA_NAVBAR,
            onBuild: function(aDocument) {
              let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbaritem');
              toolbaritem.id = buttonID;
              toolbaritem.className = 'chromeclass-toolbar-additional';
              toolbaritem.setAttribute('label', label);
              return toolbaritem;
            }
          });
        } catch(e) {
          menuButton.style.display = 'none';
          return;
        };
      };
    
      setTimeout(function() {
       document.getElementById(buttonID).appendChild(menuButton);
       menuButton.setAttribute('consumeanchor', buttonID);
       menuButton.setAttribute('label', label);
       menuButton.setAttribute('tooltiptext', tooltiptext);
      }, 0);
    
    }());
    Alles anzeigen
  • Tab mit Audioinhalt: Ist diese Darstellung normal oder ein nicht mehr richtig funktionierendes Script?

    • Mitleser
    • 6. März 2025 um 20:12

    Lieber milupo , der .tab-audio-button befindet sich im shadow-root-Bereich. Also gibt es nur eine Lsg. über userChromeShadow.css; ein Teil befindet sich aber außerhalb dieses Bereiches; eine Lsg. die beide Bereiche bedient ist also: Die oben genannte Datei (so kompliziert sich der text auch liest!) in eine .us.js-Datei einzugliedern. Hast du was Besseres?

  • Tab mit Audioinhalt: Ist diese Darstellung normal oder ein nicht mehr richtig funktionierendes Script?

    • Mitleser
    • 6. März 2025 um 19:48
    Zitat von milupo

    Das ist doch viel zu unübersichtlich inmitten des ganzen JavaScript-Codes.

    Verstehe ich nicht, mach es einfach besser! Klug******!!

  • Tab mit Audioinhalt: Ist diese Darstellung normal oder ein nicht mehr richtig funktionierendes Script?

    • Mitleser
    • 6. März 2025 um 18:39
    Zitat von omar1979

    Gibts auch für das schon was?

    Wenn dir das alles zu kompliziert ist, setze doch das css einfach in eine .uc.js, ungefähr so (Damit wäre der gesamte Quelltext an einem Ort):

    CSS
    // TabIconSound.css.uc.js
    (function() {
    
       if (location != 'chrome://browser/content/browser.xhtml') return;
    const
    // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    IconPath1 = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'css', 'image', 'ff_svg')), // Pfad zum 1.Ordner der das .svg-Symbol (mit: fill="context-fill" fill-opacity="context-fill-opacity") beinhaltet.
    IconPath2 = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'css', 'image')), // Pfad zum 2.Ordner der das .svg-Symbol (mit: fill="context-fill" fill-opacity="context-fill-opacity") beinhaltet.
    IconPath3 = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum 3.Ordner der das .svg-Symbol (mit: fill="context-fill" fill-opacity="context-fill-opacity") beinhaltet.
    // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
       const sss = Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService);   
       const uri = Services.io.newURI('data:text/css;charset=utf-8,' + encodeURIComponent(`
       
    .tab-audio-button {
      #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) {
        &[soundplaying]::part(button) {
          background-image: url("${IconPath2}/16_volume-up_moz.svg") !important;
        }
      }
    }
    .tab-audio-button:hover {
      #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) {
        &[soundplaying]::part(button) {
          background-image: url("${IconPath2}/16_volume-off_moz.svg") !important;
        }
      }
    }
    .tab-audio-button {
      #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) {
        &[muted]::part(button) {
          background-image: url("${IconPath2}/16_volume-off_moz.svg") !important;
        }
      }
    }
    .tab-audio-button:hover {
      #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) {
        &[muted]::part(button) {
          background-image: url("${IconPath2}/16_volume-up_moz.svg") !important;
        }
      }
    }
    .tab-audio-button {
        &[soundplaying]::part(button) {
        fill: green !important;
     }
    }
    .tab-audio-button {
        &[muted]::part(button) {
        fill: red !important;
     }
    }
    .tab-audio-button:hover {
        &[soundplaying]::part(button) {
        fill: red !important;
    	background-color: lightgray !important;
     }
    }
    .tab-audio-button:hover {
        &[muted]::part(button) {
        fill: green !important;
    	background-color: lightgray !important;
     }
    }
    #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) .tabbrowser-tab:not([pinned]):not([crashed]):is([soundplaying], [muted], [activemedia-blocked]) {
        .tab-content .tab-icon-image {
            display: none;
        }
        .tab-audio-button {
            --button-size-icon-small: 18px !important;
            --button-min-height-small: 18px !important;
            margin: auto 2px auto -20px !important;
            transform: translateY(-2px);
        }
    }
          `), null, null);
       sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
    })();
    
    /*Der Letzte räumt den Quellcode auf*/
    Alles anzeigen

    Beispielicons:

    Dateien

    icons.zip 2,03 kB – 47 Downloads
  • Tab mit Audioinhalt: Ist diese Darstellung normal oder ein nicht mehr richtig funktionierendes Script?

    • Mitleser
    • 6. März 2025 um 12:43

    Ich bin hier auf eine interessante Lsg. gestoßen;

    CSS
    /* hide favicon when audio is playing (like FF 135) */
    #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) .tabbrowser-tab:not([pinned]):not([crashed]):is([soundplaying], [muted], [activemedia-blocked]) {
        .tab-content .tab-icon-image {
            display: none;
        }
    
        .tab-audio-button {
            --button-size-icon-small: 18px !important;
            --button-min-height-small: 18px !important;/**/
            margin: auto 2px auto -20px !important;
            transform: translateY(-1.5px);
        }
    }
    Alles anzeigen

    Nach etwas Justierung ersetzt der .tab-audio-button das .tab-icon-image ganz ohne 'geflacker', Die Farbe muß - wie gehabt - angepasst werden.

  • addons_very_day_updatecheck.uc.js tut nicht mehr

    • Mitleser
    • 4. März 2025 um 19:39
    Zitat von 2002Andreas

    Mir zumindest ist nichts bekannt.

    Das ist das ist einzige Script, dass nach dem Update auf 136 bei mir nicht mehr funktioniert.
    RIP 03/2025 <X

Unterstütze uns!

Jährlich (2025)

65,5 %

65,5% (425,86 von 650 EUR)

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