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

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 12. Januar 2025 um 00:47
    Zitat von milupo

    Mitleser Die Inline-Eventhandler sind ja schon lange nur eine Altlast nebenher, die Variante mit addEventListener und seinem Gegenstück removeEventListener gibt es ja schon seit einer Ewigkeit.

    Ach so :thumbup:, Danke!,

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 12. Januar 2025 um 00:12
    Zitat von BrokenHeart

    Brauchst du auch gar nicht. Wenn du das angepasste Skript in der Release-Version testest und es genau das macht, was das Skript vorher gemacht hat, dann wird es auch in der Nightly funktionieren.

    Getestet in Release und funzt!

    Danke!!

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 23:47
    Zitat von BrokenHeart

    Funktioniert das angepasste Script aus #91 bei dir nicht?

    Habe leider kein Nightly zum testen...

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 23:34

    Schade. war einen Versuch wert. Da ich das nicht testen kann gebe ich auf. Danke für die Rückmeldungen.

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 23:27
    Zitat von BrokenHeart

    Gerne :) . Ich glaube ihr beide seid die einzigen, die dieses Skript nutzen (mag mich natürlich irren) ^^ .

    Nö, ich auch (dann wären wir schon zu dritt). Eine Lsg. bei diesem doch komplizierten Script wäre schön...

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 23:15
    Zitat von 2002Andreas

    Es werden immer mehr ;)

    Funzt das?

    JavaScript
    //ScrollTopAndBottom.uc.js
    (function() {
    
    let menuitem = document.createXULElement('menuitem');
    menuitem.id = 'context-to-top';
    menuitem.classList.add('menuitem-iconic');
    menuitem.setAttribute('tooltiptext' , '');
    menuitem.style.listStyleImage='url("chrome://browser/skin/downloads/downloads.svg")';
    menuitem.setAttribute('oncommand' , "ownerGlobal.gBrowser.selectedBrowser.messageManager.loadFrameScript(' data: , content.scrollTo(0,0) ' , false);");
    let refItem = document.getElementById('context-reload');
    refItem.parentNode.insertBefore(menuitem, refItem);
    
    })();
    
    (function() {
    
    let menuitem = document.createXULElement('menuitem');
    menuitem.id = 'context-to-bottom';
    menuitem.classList.add('menuitem-iconic');
    menuitem.setAttribute('tooltiptext' , '');
    menuitem.style.listStyleImage='url("chrome://browser/skin/downloads/downloads.svg")';
    let refItem = document.getElementById('context-reload');
    refItem.parentNode.insertBefore(menuitem, refItem);
    //click
    menuitem.addEventListener('click', () => {
    	if (event.button == 0) {
    		ownerGlobal.gBrowser.selectedBrowser.messageManager.loadFrameScript(' data: , content.scrollTo(0,100000) ' , false);
                }
    }); 
    
    var css = '\
    #context-to-top { \
    list-style-image: url("chrome://browser/skin/downloads/downloads.svg");\
      transform:rotate(180deg)!important;\
      margin-left: 0px !important;\
      margin-right: 15px !important;\
    }\
    }';
    var cssUri = Services.io.newURI('data:text/css,' + encodeURIComponent(css), null, null);
    var SSS = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
    SSS.loadAndRegisterSheet(cssUri, SSS.AGENT_SHEET);
    })();
    Alles anzeigen
  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 20:25
    Zitat von 2002Andreas

    Und noch eins:

    Ich kann das ja nicht testen aber vielleicht klappt das ja:

    JavaScript
    (function() {
    
      if (location != 'chrome://browser/content/browser.xhtml')
        return;
    
      let menuitem = document.createXULElement('menuitem');
      menuitem.id = 'context_closeLeftTabs';
      menuitem.setAttribute('label', 'Linke Tabs schließen');
      let tabContextMenu = document.getElementById('tabContextMenu');
      let refItem = document.getElementById('context_undoCloseTab');
      tabContextMenu.insertBefore(menuitem, refItem);
      tabContextMenu.insertBefore(document.getElementById('context_closeTabsToTheEnd'), refItem);
      tabContextMenu.insertBefore(document.getElementById('context_closeOtherTabs'), refItem);
      //tabContextMenu.removeChild(document.getElementById('context_closeTabOptions'));
    //click
    menuitem.addEventListener('click', () => {
    	if (event.button == 0) {
           	 for (let i = TabContextMenu.contextTab._tPos - 1; i >= 0; i--)gBrowser.removeTab(gBrowser.tabs[i], {animate: true});
                }
    }); 
    
    })();
    Alles anzeigen

    Das Script war aber vorher auch nicht i.O., "Linke Tabs schließen" bleibt als menuitem obwohl es keinen Linken Tab gibt!

  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 17:36
    Zitat von 2002Andreas

    Och nö..noch einer..

    Wieder nur 'meine' angepasste Version:
    Icon: 16_close-box_large_moz.svg

    JavaScript
    // JavaScript Document
    // M_contentAreaContextMenuCloseTab.uc.js
    
    (function() {
      if (!window.gBrowser)
    	return;
    // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const id = 'context-closetab-test'; // ID des neuen menuitems
    const label = 'Aktuellen Tab schließen'; // Bezeichnung des neuen menuitems
    const tooltiptext = 'Aktuellen Tab schließen'; 
    // Icon-------------------------------------------------------
    const icon = '16_close-box_large_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols
    const iconPath = '/chrome/icons/'; // Pfad zum Ordner der das Icon beinhaltet
    const iconColor = 'currentColor';  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties], bei anderen Icons hat const iconColor keine Funktion)
    // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    //----
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
    //----  
      var contextMenu = document.getElementById('contentAreaContextMenu');
      var menuseparator = document.createXULElement('menuseparator');
      menuseparator.id = 'context-sep-closetab';
      contextMenu.append(menuseparator);
    
      var menuitem = document.createXULElement('menuitem');
      menuitem.id = id;
      menuitem.setAttribute('label', label);
      menuitem.setAttribute('tooltiptext', tooltiptext);
    	  menuitem.style.MozContextProperties = 'fill';
    	  menuitem.style.fill = iconColor;
    	  menuitem.classList.add('menuitem-iconic');
    	  menuitem.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
    
    menuitem.addEventListener('click', () => {
    	BrowserCommands.closeTabOrWindow();
    });
    
      contextMenu.append(menuitem);
    
    //Feld in die Iconleiste
    //let ref = document.getElementById('context-bookmarkpage');
    //ref.parentNode.insertBefore(menuitem, ref.nextSibling);
    
      var appcontent = document.getElementById('tabbrowser-tabbox');
      appcontent.addEventListener('contextmenu', event => {
        setTimeout(() => {
          if (gContextMenu && !gContextMenu.shouldDisplay) {
            for (let string of 'back forward reload bookmarkpage'.split(' ')) {
              document.getElementById('context-' + string).removeAttribute('hidden');
            }
            document.getElementById('context-stop').setAttribute('hidden', 'true');
            const A = 'navigation sep-navigation savepage sep-paste selectall sep-viewsource viewsource viewinfo sep-bidi inspect-a11y inspect sep-closetab closetab'.split(' ');
            for (let node of contextMenu.childNodes) {
              if (A.includes(node.id.substring(8)))
                node.removeAttribute('hidden');
              else
                node.setAttribute('hidden', 'true');
            }
            contextMenu.openPopupAtScreen(event.screenX, event.screenY, true, event);
          }
        }, 50);
      });
    
    })();
    Alles anzeigen
  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 15:46
    Zitat von 2002Andreas

    Noch eins was nicht mehr funktioniert ;)

    Auch da habe ich leider nur ein Alternativ-Script (mit den Icons aus #23):

    JavaScript
    // JavaScript Document
    // B_UserPrefContextMenuEnabled.uc.js
    
    // Das Script erstellt einen Button, der in about:config boolsche Werte ändert. In der UserConfiguration unter 'const boolPref' kann die zu ändernde Einstellung festgelegt werden. Das icon/label/tooltiptext kann in der UserConfiguration dem jeweiligen Zustand angepasst werden (true/false).
    // 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 'dom.event.contextmenu.enabled, true' gesetzt. Allerdings kann die Anzeige des Kontextmenüs durch die Website manchmal unterdrückt sein. Dieses Script toggelt 'dom.event.contextmenu.enabled, true'/'dom.event.contextmenu.enabled, false', 'umgeht' die 'Sperre' und blendet das Menü wieder ein. ACHTUNG: Diese Einstellung kann (z.B. mit Mausgesten+Kontextmenü) zu Konflikten führen, deshalb ist diese Schalterstellung nur für kurzzeitigen Einsatz geeignet.   
    
    (function() {
      if (!window.gBrowser)
    	return;
    // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const id = 'UserPref-cmE-button'; // Id des neuen Buttons
    const boolPref = 'dom.event.contextmenu.enabled'; // Einstellung in about:config deren boolesche Variable geschaltet werden soll
    const labelT = 'Seitenkontextmenü normal anzeigen'; // Bezeichnung des neuen Buttons bei boolPref=true
    const labelF = 'Durch Site "gesperrtes" Kontextmenü anzeigen'; // Bezeichnung des neuen Buttons bei boolPref=false
    const tooltiptextT = 'Seitenkontextmenü normal anzeigen';
    const tooltiptextF = 'Durch eine Site "unterdrücktes"\nSeitenkontextmenü anzeigen';
    // Icon-------------------------------------------------------
    const iconT = '16-control-panel-18_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols für boolPref=true
    const iconF = '16-control-panel-20_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols für boolPref=false
    //const bgImage = 'blue'; // Farbe des Indikators (zur Unterscheidung mehrerer UserPref-buttons;)
    const iconPath = '/chrome/icons/'; // Pfad zum Ordner der das Icon beinhaltet
    const iconColorT = 'firebrick';  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für boolPref=true, bei anderen Icons hat const iconColorT keine Funktion)
    const iconColorF = 'forestgreen';  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für boolPref=false, bei anderen Icons hat const iconColorF keine Funktion)
    // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    //----
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
    //----  
    CustomizableUI.createWidget({
        id: id,
        defaultArea: CustomizableUI.AREA_NAVBAR,
        onCreated: function(button) {
    		button.style.MozContextProperties = 'fill';
    //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);';
    	}
    });
    
    const el = document.getElementById(id);
    const cl = '.toolbarbutton-icon';
    //start
    if (Services.prefs.getBoolPref(boolPref) == false ) {
    		el.querySelector(cl).style.fill = iconColorF;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")';
        	el.setAttribute('label', labelF);
        	el.setAttribute('tooltiptext', tooltiptextF);
    }
    else
    if (Services.prefs.getBoolPref(boolPref) == true ) {
    		el.querySelector(cl).style.fill = iconColorT;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")';
        	el.setAttribute('label', labelT);
        	el.setAttribute('tooltiptext', tooltiptextT);
    }
    //click
    el.addEventListener('click', () => {
    if (event.button == 0) {
    	if (Services.prefs.getBoolPref(boolPref) == false ) {
    		el.querySelector(cl).style.fill = iconColorT;
    		Services.prefs.setBoolPref(boolPref, true);
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")';
        	el.setAttribute('label', labelT);
        	el.setAttribute('tooltiptext', tooltiptextT);
    	}
    	else
    	if (Services.prefs.getBoolPref(boolPref) == true ) {
    		el.querySelector(cl).style.fill = iconColorF;
    		Services.prefs.setBoolPref(boolPref, false);
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")';
        	el.setAttribute('label', labelF);
        	el.setAttribute('tooltiptext', tooltiptextF);
    	}
    }
    });
    //----
    })();
    Alles anzeigen
  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 11. Januar 2025 um 12:33
    Zitat von 2002Andreas

    Mit dem unteren Skript wird der config Eintrag: media.mediasource.enabled

    von false auf true umgestellt.

    Meine Frage/Bitte: Kann mir jemand diese Skripte anpassen?

    Daran bin ich auch gescheitert, deshalb habe ich auch nur ein alternatives Script (mit den Icons aus #23):

    JavaScript
    // JavaScript Document
    // B_UserPrefMediaSource.uc.js
    
    // Das Script erstellt einen Button, der in about:config boolsche Werte ändert. In der UserConfiguration unter 'const boolPref' kann die zu ändernde Einstellung festgelegt werden. Das icon/label/tooltiptext kann in der UserConfiguration dem jeweiligen Zustand angepasst werden (true/false).
    // 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 'media.mediasource.enabled, true' gesetzt. Allerdings werden einige Menuitems im Mediendropdown nicht angezeigt z.B.:'Video speichern unter'. Dieses Script toggelt 'media.mediasource.enabled, true'/'media.mediasource.enabled, false'. Die Einstellung 'media.mediasource.enabled, false' könnte z.B.: auf 'youtube.com' interessant sein ( =>'Video speichern unter'). Bei Livestreams (z.b.: 'ardmediathek.de/live/') kann es bei der Einstellung 'media.mediasource.enabled, false' zu Fehlermeldungen der Seite (Wiedergabefehler) kommen. Beim Umschalten wird der Seiteninhalt des AKTIVEN Tabs neu geladen.
    
    (function() {
      if (!window.gBrowser)
    	return;
    // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const id = 'UserPref-msE-button'; // Id des neuen Buttons
    const boolPref = 'media.mediasource.enabled'; // Einstellung in about:config deren boolesche Variable geschaltet werden soll (Wichtig: Beim Umschalten wird der Seiteninhalt des aktiven Tabs neu geladen)
    const labelT = 'Mediendropdown ohne DownloadItem (Livestream)'; // Bezeichnung des neuen Buttons bei boolPref=true
    const labelF = 'Mediendropdown mit DownloadItem (Youtube)'; // Bezeichnung des neuen Buttons bei boolPref=false
    const tooltiptextT = 'Mediendropdown ohne DownloadItem (Livestream)';
    const tooltiptextF = 'Mediendropdown mit DownloadItem (Youtube)';
    // Icon-------------------------------------------------------
    const iconT = '16-control-panel-18_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols für boolPref=true
    const iconF = '16-control-panel-20_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols für boolPref=false
    //const bgImage = 'magenta'; // Farbe des Indikators (zur Unterscheidung mehrerer UserPref-buttons;)
    const iconPath = '/chrome/icons/'; // Pfad zum Ordner der das Icon beinhaltet
    const iconColorT = 'firebrick';  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für boolPref=true, bei anderen Icons hat const iconColorT keine Funktion)
    const iconColorF = 'forestgreen';  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für boolPref=false, bei anderen Icons hat const iconColorF keine Funktion)
    // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    //----
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
    //----  
    CustomizableUI.createWidget({
        id: id,
        defaultArea: CustomizableUI.AREA_NAVBAR,
        onCreated: function(button) {
    		button.style.MozContextProperties = 'fill';
    //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);';
    	}
    });
    
    const el = document.getElementById(id);
    const cl = '.toolbarbutton-icon';
    //start
    if (Services.prefs.getBoolPref(boolPref) == false ) {
    		el.querySelector(cl).style.fill = iconColorF;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")';
        	el.setAttribute('label', labelF);
        	el.setAttribute('tooltiptext', tooltiptextF);
    }
    else
    if (Services.prefs.getBoolPref(boolPref) == true ) {
    		el.querySelector(cl).style.fill = iconColorT;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")';
        	el.setAttribute('label', labelT);
        	el.setAttribute('tooltiptext', tooltiptextT);
    }
    //click
    el.addEventListener('click', () => {
    if (event.button == 0) {
      BrowserCommands.reloadSkipCache();
    	if (Services.prefs.getBoolPref(boolPref) == false ) {
    		el.querySelector(cl).style.fill = iconColorT;
    		Services.prefs.setBoolPref(boolPref, true);
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconT + '")';
        	el.setAttribute('label', labelT);
        	el.setAttribute('tooltiptext', tooltiptextT);
    	}
    	else
    	if (Services.prefs.getBoolPref(boolPref) == true ) {
    		el.querySelector(cl).style.fill = iconColorF;
    		Services.prefs.setBoolPref(boolPref, false);
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconF + '")';
        	el.setAttribute('label', labelF);
        	el.setAttribute('tooltiptext', tooltiptextF);
    	}
    }
    });
    //----
    })();
    Alles anzeigen
  • Script für animierte Grafiken funktioniert ab FF 94 nicht mehr vollständig

    • Mitleser
    • 11. Januar 2025 um 00:58
    Zitat von Speravir

    Danke, sehr interessant. Kannst du das bitte im oben verlinkten Thread nochmal posten? Ich hätte einige kleinere Anmerkungen dazu, die thematisch nicht hierher gehören.

    Beitrag

    RE: Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    Speravir Als Sören Hentzschel die kommenden Änderungen an den Inline-Eventhandlern publiziert hat, habe ich angefangen einige Button-Scripte umzuschreiben, darunter auch einige Scripte die Userprefs betreffen
    (setIntPref/setBoolPref oder setCharPref). Bei mir befinden sich diese Buttons in einer zusätzlichen Seitenleiste am rechten Rand. Hier mein Script um den 'image.animation_mode' zu schalten. Aber ob das auch auf Nightly 136 läuft?

    Hier die Icons: icons.zip

    (Quelltext, 100 Zeilen)

    Mitleser
    10. Januar 2025 um 04:09
  • Div. Skripte funktionieren im aktuellem Nightly nicht mehr

    • Mitleser
    • 10. Januar 2025 um 04:09

    Speravir Als Sören Hentzschel die kommenden Änderungen an den Inline-Eventhandlern publiziert hat, habe ich angefangen einige Button-Scripte umzuschreiben, darunter auch einige Scripte die Userprefs betreffen
    (setIntPref/setBoolPref oder setCharPref). Bei mir befinden sich diese Buttons in einer zusätzlichen Seitenleiste am rechten Rand. Hier mein Script um den 'image.animation_mode' zu schalten. Aber ob das auch auf Nightly 136 läuft?

    Hier die Icons: 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;
    // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const id = 'UserPref-iA_m-button'; // Id des neuen Buttons
    const charPref = 'image.animation_mode'; // Einstellung in about:config deren character-Variable geschaltet werden soll
    const labelNorm = 'Normale Gifanimation (Schleife)'; // Bezeichnung des neuen Buttons bei charPref=normal
    const labelOnce = 'Einmalige Gifanimation'; // Bezeichnung des neuen Buttons bei charPref=once
    const labelNone = 'Keine Gifanimation'; // Bezeichnung des neuen Buttons bei charPref=none
    const ttTextNorm = 'Normale Gifanimation (Schleife)'; // Tooltiptext
    const ttTextOnce = 'Einmalige Gifanimation';
    const ttTextNone = 'Keine Gifanimation';
    // Icon-------------------------------------------------------
    const iconNorm = '16-control-panel-20_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols für charPref=normal
    const iconOnce = '16-control-panel-19_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols charPref=once
    const iconNone = '16-control-panel-18_moz.svg';  // [Name.Dateiendung] des anzuzeigenden Symbols für charPref=none
    //const bgImage = '#f9f9f9'; // Farbe des Indikators (zur Unterscheidung mehrerer UserPref-buttons)
    const iconPath = '/chrome/icons/'; // Pfad zum Ordner der das Icon beinhaltet
    const iconColNorm = 'forestgreen';  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für charPref=normal, bei anderen Icons hat const iconColNorm keine Funktion)
    const iconColOnce = 'goldenrod';  // Farbe des Icons (nur .svg-Datei mit [moz-context-properties] für charPref=once, bei anderen Icons hat const iconColOnce keine Funktion)
    const 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 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    //----
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
    //----  
    CustomizableUI.createWidget({
        id: id,
        defaultArea: CustomizableUI.AREA_NAVBAR,
        onCreated: function(button) {
    		button.style.MozContextProperties = 'fill';
    //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);';
    	}
    });
    
    const el = document.getElementById(id);
    const cl = '.toolbarbutton-icon';
    //start
    if (Services.prefs.getCharPref(charPref) == 'normal' ) {
    		el.querySelector(cl).style.fill = iconColNorm;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNorm + '")';
        	el.setAttribute('label', labelNorm);
        	el.setAttribute('tooltiptext', ttTextNorm);
    }
    else
    if (Services.prefs.getCharPref(charPref) == 'once' ) {
    		el.querySelector(cl).style.fill = iconColOnce;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconOnce + '")';
        	el.setAttribute('label', labelOnce);
        	el.setAttribute('tooltiptext', ttTextOnce);
    }
    else
    if (Services.prefs.getCharPref(charPref) == 'none' ) {
    		el.querySelector(cl).style.fill = iconColNone;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNone + '")';
        	el.setAttribute('label', labelNone);
        	el.setAttribute('tooltiptext', ttTextNone);
    }
    //click
    el.addEventListener('click', () => {
    if (event.button == 0) {
      BrowserCommands.reloadSkipCache();
    	if (Services.prefs.getCharPref(charPref) == 'normal' ) {
    		Services.prefs.setCharPref(charPref, 'once');
    		el.querySelector(cl).style.fill = iconColOnce;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconOnce + '")';
        	el.setAttribute('label', labelOnce);
        	el.setAttribute('tooltiptext', ttTextOnce);
    	}
    	else
    	if (Services.prefs.getCharPref(charPref) == 'once' ) {
    		Services.prefs.setCharPref(charPref, 'none');
    		el.querySelector(cl).style.fill = iconColNone;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNone + '")';
        	el.setAttribute('label', labelNone);
        	el.setAttribute('tooltiptext', ttTextNone);
    	}
    	else
    	if (Services.prefs.getCharPref(charPref) == 'none' ) {
    		Services.prefs.setCharPref(charPref, 'normal');
    		el.querySelector(cl).style.fill = iconColNorm;
    		el.style.listStyleImage = 'url("' + curProfDir + iconPath + iconNorm + '")';
        	el.setAttribute('label', labelNorm);
        	el.setAttribute('tooltiptext', ttTextNorm);
    	}
    }
    });
    //----
    })();
    Alles anzeigen
  • Firefox Scrollbalken breiter machen

    • Mitleser
    • 24. Dezember 2024 um 16:42
    Zitat von Sören Hentzschel

    Daher auch das win im Optionsnamen - das steht für Windows. ;)

    Und ich dachte schon das würde für winner stehen :huh: !
    Frohe Weihnachten!

  • Firefox Scrollbalken breiter machen

    • Mitleser
    • 24. Dezember 2024 um 15:40
    Zitat von Mitleser

    Versuch es mal mit: widget.non-native-theme.scrollbar.size.override

    Zitat von Sören Hentzschel

    Damit diese Option berücksichtigt wird, muss zusätzlich widget.non-native-theme.win.scrollbar.use-system-size auf false gesetzt werden.

    Danke für die Info. Hier unter Linux mit widget.non-native-theme.scrollbar.style = 0 funktioniert widget.non-native-theme.scrollbar.size.override = n .

  • Firefox Scrollbalken breiter machen

    • Mitleser
    • 24. Dezember 2024 um 07:06

    Die Scrollbars sind ein eben ein komplexes Thema.

    Aus der Community FirefoxCSS auf Reddit
    Entdecke diesen Beitrag und mehr aus der Community FirefoxCSS
    www.reddit.com
  • Firefox Scrollbalken breiter machen

    • Mitleser
    • 24. Dezember 2024 um 05:59

    Versuch es mal mit: widget.non-native-theme.scrollbar.size.override

  • "ZDF heute" zu 20 Jahren Firefox

    • Mitleser
    • 9. November 2024 um 23:25

    Was meinst Du damit?

    Habe gerade mal ohne ublock in einem neuen Profil getestet....:/
    Da ist keine Werbung:) , sind keine Werbelinks...
    Oder meinst Du der Artikel ist eine gute Werbung für Firefox?

  • Daten synchronisieren vom PC auf USB-Stick

    • Mitleser
    • 2. November 2024 um 22:30
    Zitat von Luna-1

    schlingo,

    habe es verstanden. Werde es gleich erledigen.

    Danke!

    'Der Zuhörer ist ein schweigender Schmeichler' [Immanuel Kant]

  • Joyn.de unter Ubuntu 22.04

    • Mitleser
    • 26. Oktober 2024 um 23:56
    Zitat von Data2006

    ich wollte mal fragen wann der FF endlich Joyn.de unterstützt.

    Joyn.de läuft hier unter Linux und Firefox 131.0.3 ohne Probleme.

  • Link im Tab öffnen vs. Link in neuem Tab öffnen

    • Mitleser
    • 21. Oktober 2024 um 22:47
    Zitat von Webmark

    Mich würde an dieser Stelle interessieren welche Darstellung der Links ihr bevorzugt

    Ich mach das so:

    Code
    /*Link nicht als aktiv öffnen (javascript und aus anderen Anwendungen */
    user_pref("browser.tabs.loadDivertedInBackground", true);/*false*/
    
    /*Link nicht als aktiv öffnen (normale links)*/ 
    user_pref("browser.tabs.loadInBackground", true);/**//*true*/
    
    /*Link nicht als aktiv öffnen (bookmarks and searchbar)*/ 
    user_pref("browser.tabs.loadBookmarksInBackground", true);/**//*false*/
    
    /*Link mit linkerMaus in neuen Tab öffnen*/ 
    user_pref("browser.tabs.loadBookmarksInTabs", true);/**//*false*/
    user_pref("browser.search.openintab", true);/**//*false*/
    user_pref("browser.urlbar.openintab", true);/**//*false*/
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

92,9 %

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

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