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

  • Hat die Nightly Version gerade Probleme?

    • Mitleser
    • 15. Januar 2026 um 15:22
    Zitat von Foxxiator

    Profil vom TE einen Knacks und hat das Update zum Anlass genommen, die Arbeit zu verweigern

    Das Profil vom Nightly hieß plötzlich genauso wie das default Profil, also 2 Profile mit gleichem Namen. Ich habe dieses Problem letztlich nur über die Systemwiederherstellung (Timeshift) als letzte Möglichkeit lösen können. Alles Andere war nicht erfolgreich. Jetzt ist alles wieder gut. Nightly eben...

  • Hat die Nightly Version gerade Probleme?

    • Mitleser
    • 15. Januar 2026 um 00:48
    Zitat von Foxxiator

    grade Update

    Danke!

  • Hat die Nightly Version gerade Probleme?

    • Mitleser
    • 15. Januar 2026 um 00:25

    Bei mir hat die Nightly gerade das default-Profil zerschossen...Bei euch auch?
    Finger weg von der momentanen Nightly...

  • Was hört Ihr gerade?

    • Mitleser
    • 13. Januar 2026 um 16:29
    Zitat von graubaer

    The Hungry Giant

    🫎️🛒💰

    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.

  • In memoriam

    • Mitleser
    • 11. Januar 2026 um 13:43

    Micha Kemner ist tot. Er war ein Teil meiner jugendlichen Subkultur.

    Fehlfarben-Bassist Micha Kemner ist tot: Funky Punk ohne Personalpronomen
    Mit Deutsch Amerikanische Freundschaft und Fehlfarben begründete er den Punk in Westdeutschland. Nachruf auf den Bassisten Michael Kemner.
    taz.de
  • Scrollbutton in Lesezeichen-Ordnern und Lesezeichen-Symbolleiste anpassen

    • Mitleser
    • 4. Januar 2026 um 12:35
    Zitat von Horstmann

    Hat es übrigens jemand geschafft, ::part(scrollbutton-up) etc. für die Lesezeichen Popups mit der userChromeShadow.css zu manipulieren?

    Leider nur auf diesem Weg:

    CSS
    menupopup:not([placespopup="true"])::part(arrowscrollbox) {
        background-color: red !important;
    }
    Zitat von Horstmann

    In dem Sinne auch sowas; das Problem ist, dass initial nicht greift (den nativen Wert benutzt), wenn eine Variable nicht ausdrücklich gesetzt ist, zB wenn man --ug-scroller_hoverbgcolor: orange; ganz oben löscht.

    Es funzt, siehe Scrollbuttons in der Tableiste (die einen Wert haben müssen, da die Var nicht gefunden wird).

  • Scrollbutton in Lesezeichen-Ordnern und Lesezeichen-Symbolleiste anpassen

    • Mitleser
    • 4. Januar 2026 um 10:43
    Zitat von FuchsFan

    Das sind für mich "Böhmische Wälder".

    Ich meinte diese Möglichkeit (gehört in die userChrome.css):

    CSS
    #PlacesToolbar menupopup{
    	--uc-background-color: green;
    }
    scrollbox {
        background-color: var(--uc-background-color,initial);
    }

    oder besser:

    CSS
    #PlacesToolbar menupopup{
    	--mp-background-color: green;
    	--mp-background-color-over: blue;
    }
    #scrollbutton-down,
    #scrollbutton-up {
        background-color: var(--mp-background-color,initial);
    }
    #scrollbutton-down:hover,
    #scrollbutton-up:hover {
        background-color: var(--mp-background-color-over,initial);
    }
    Alles anzeigen
  • Sidebar für FF 146 - Erster Versuch

    • Mitleser
    • 3. Januar 2026 um 18:56
    Zitat von Horstmann

    falls das mal jemand testen möchte

    Was hat das denn mit dem originalen Script zu tun? Eigenes Thema?

  • Scrollbutton in Lesezeichen-Ordnern und Lesezeichen-Symbolleiste anpassen

    • Mitleser
    • 3. Januar 2026 um 18:07

    Das ist 'shadowroot' und deshalb auch nur in der userChromeShadow.css auseinander zuhalten (Hier mal 'meine' mit genau dieser Problematik [meine user-Variablen müssen selbstverständlich ersetzt werden]) als Beispiel:

    CSS
    /*■■■■■■■■■■■■■■■■scrollbuttons tableiste■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox::part(scrollbutton-up),
    #tabbrowser-arrowscrollbox::part(scrollbutton-down) {
    	appearance: none !important;
    	background-color: var(--uc-color-theme-grey) !important;
    	box-shadow: var(--uc-shadow-tabs-border-bottom) !important;
    	border: 0 !important;
    	border-radius: 0 !important;
    	width: 28px !important;
    	min-width: 28px !important;
    	max-width: 28px !important;
    	height: var(--uc-tabs-height) !important;
    	min-height: var(--uc-tabs-height) !important;
    	max-height: var(--uc-tabs-height) !important;
    	overflow: hidden !important;
    	padding-top: 0px !important;
    	padding-bottom: 0px !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox::part(scrollbutton-up):hover,
    #tabbrowser-arrowscrollbox::part(scrollbutton-down):hover {
    	appearance: none !important;
    	background-color: var(--button-hover-bgcolor) !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox {
      &::part(scrollbutton-up), &::part(scrollbutton-down) {
    	--arrowscrollbox-scrollicon-hover-background-color: unset !important;
    	--arrowscrollbox-scrollicon-active-background-color: unset !important;
       }
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox::part(scrollbutton-up),
    #tabbrowser-arrowscrollbox::part(scrollbutton-down) {
    	fill: var(--uc-color-green-font) !important;
    	fill-opacity: 1.0 !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox::part(scrollbutton-up):hover,
    #tabbrowser-arrowscrollbox::part(scrollbutton-down):hover {
    	fill: var(--uc-color-theme-font) !important;
    	fill-opacity: 1.0 !important;
    }
    #tabbrowser-arrowscrollbox[scrolledtostart]::part(scrollbutton-up),
    #tabbrowser-arrowscrollbox[scrolledtoend]::part(scrollbutton-down) {
    	fill: var(--uc-color-redorange-button) !important;
    	fill-opacity: 1.0 !important;
    	opacity: 1.0 !important;
    	background-color: var(--uc-color-theme-grey) !important;
    }
    #tabbrowser-arrowscrollbox[scrolledtostart]::part(scrollbutton-up):hover,
    #tabbrowser-arrowscrollbox[scrolledtoend]::part(scrollbutton-down):hover {
    	fill: var(--uc-color-redorange-button) !important;
    	fill-opacity: 0.6 !important;
    	opacity: 1.0 !important;
    }
    /*■■■■■■■■■■■■■■■■scrollbuttons dropdown kontext■■■■■■■■■■■■■■■■■*/
    menupopup:not([placespopup="true"])::part(arrowscrollbox)   {
        background-color: var(--uc-border-color) !important;
    	border-radius: 0!important;
    }
    menupopup:not([placespopup="true"]):hover::part(arrowscrollbox)   {
        background-color: var(--uc-border-color) !important;
    	border-radius: 0 !important;
    }
    /*■■■■■■■■■■■■■■■■scrollbuttons dropdown bookmarks■■■■■■■■■■■■■■■*/
    menupopup[placespopup="true"]::part(arrowscrollbox) {
        background-color: var(--uc-border-color) !important;
    }
    menupopup[placespopup="true"]:hover::part(arrowscrollbox) {
        background-color: var(--uc-border-color) !important;
    }
    Alles anzeigen

    Ich hoffe es hilft dir weiter...

    Eine weitere Möglichkeit wäre: Shadowroot ist von außen über Variablen ansprechbar. Diese müssen auf einer höhere Ebene deklariert werden um dann auf der auszuführenden Ebene anwendbar zu sein...
    Das wäre dann die bessere Lsg.

  • Ein friedliches neues Jahr

    • Mitleser
    • 31. Dezember 2025 um 18:19

    Ein friedliches neues Jahr 2026 wünsche ich allen Menschen, achtet auf eure Gesundheit. Viel Glück...

  • Eigene Zusatzleisten

    • Mitleser
    • 24. Dezember 2025 um 23:45
    Zitat von Horstmann

    Ein kleiner Update

    Knapp 1000 Zeilen für eine Leiste? Geht auch kürzer (CSS muss angepasst werden):

    JavaScript
    /* Statusleiste für Firefox, für Änderungen ab 118/119:
    https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?postID=1234805#post1234805*/
    
    (function() {
    
      if (location != 'chrome://browser/content/browser.xhtml')
        return;
    
     var tb = document.createXULElement('toolbar');
      tb.id = 'new-toolbar';
      tb.setAttribute('customizable', true);
      tb.setAttribute('mode', 'icons');
    tb.setAttribute("context","toolbar-context-menu");
     var vbox  = document.createXULElement('vbox');
      document.getElementById('browser').parentNode.insertBefore( vbox, null);
      vbox.appendChild(tb);
    
      CustomizableUI.registerArea('new-toolbar', {legacy: true});
      CustomizableUI.registerToolbarNode(tb);
    
    })();
    Alles anzeigen
    CSS
    #new-toolbar{
        background-color: gray !important;
    	border: none !important;
    	border-top: 1px solid orange !important;
    	box-shadow: none !important;
    	--toolbarbutton-inner-padding: 6px !important;
     	--toolbarbutton-outer-padding: 0px !important;
    	overflow: hidden !important;
    	bottom: 0 !important;
    	height: 0px !important;
    	min-height: 0px !important;
    	max-height: 0px !important;
    	margin-top: -4px !important;
    	margin-bottom: 0px !important;
    	opacity: 0 !important;
    	transition: height .1s linear .1s, min-height .1s linear .1s, max-height .1s linear .1s, opacity .1s linear .1s, margin-top .1s linear .1s !important;
    }
    #new-toolbar:hover {
        height: 22px !important;
    	min-height: 22px !important;
    	max-height:22px !important;
    	margin-top: 1px !important;
        opacity: 1 !important;
    	transition: height .3s linear .3s, min-height .3s linear .3s, max-height .3s linear .3s, opacity .3s linear .3s, margin-top .3s linear .3s !important;
    	overflow: hidden !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #new-toolbar {
        background-color: gray!important;
    	max-height: 22px!important;
    	box-shadow: none !important;
    	overflow: hidden!important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #new-toolbar toolbarbutton .toolbarbutton-icon   {
    	margin-bottom: -3px !important;
    	margin-top: -3px !important;
    	overflow: hidden !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #new-toolbar toolbarbutton,
    #new-toolbar .toolbarbutton-1 {
    	height: 22px !important;
    	min-height: 22px !important;
    	max-height: 22px !important;
    	overflow: hidden !important;
    	min-width: fit-content !important;
    }
    #new-toolbar toolbarbutton:hover,
    #new-toolbar .toolbarbutton-1:hover {
    	background-color: lightgray !important;
    }
    #new-toolbar toolbarbutton:active,
    #new-toolbar .toolbarbutton-1:active {
    	background-color: lightgray !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #new-toolbar .toolbarbutton-1 {
    	margin-top: -2px !important;
    }
    #new-toolbar toolbarbutton {
    	margin-bottom: -1px !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    :root[customizing] #new-toolbar{
    	height: 22px !important;
    	min-height: 22px !important;
    	max-height: 22px !important;
    	margin-top: 0px !important;
    	opacity: 1 !important;
    	transition: none !important;
    }
    :root[customizing] #new-toolbar:hover{
    	height: 22px !important;
    	min-height: 22px !important;
    	max-height: 22px !important;/**/
    	margin-top: 0px !important;
    	opacity: 1 !important;
    	transition: none !important;
    }
    Alles anzeigen

  • In memoriam

    • Mitleser
    • 24. Dezember 2025 um 12:55

    Uwe Kockisch aka Commissario Brunetti ist leider gestorben

    Er war Commissario Brunetti: Schauspieler Uwe Kockisch ist tot
    Als Kommissar ermittelte er in Venedig, in „Weissensee” spielte er einen Stasi-Mann: Jetzt ist Uwe Kockisch mit 81 Jahren in Madrid gestorben. Der als
    www.mopo.de
  • Frohe und gesegnete Weihnacht 2025 Euch allen

    • Mitleser
    • 24. Dezember 2025 um 12:11

    Geschenke gibts wohl dieses Jahr nicht. Frohe Weihnachten...

  • ShadowRoot: Neue Aufruf-Methode für CSS-Regeln

    • Mitleser
    • 23. Dezember 2025 um 14:26

    @Horstmann 
    Wenn ich keine CSS-Hervorhebung im jeweiligen Editor möchte, kann ich das CSS einfach nur in js einbinden (auch shadowroot funzt damit). Genauso war es in der Zeit vor diesem wirklich nützlichen Script.

    Zitat von Horstmann

    Icons in shadow-root könnte man damit im Prinzip auch ändern mit einem relativen Pfad, dazu habe ich aber keine komplett überzeugende Lösung gefunden

    Ich mach das so (In dieser Datei befindet sich lediglich der relative Pfad auf das Icon; fill usw. nicht):

    JavaScript
    // userChromeShadowIcons.css.uc.js
    (function() {
    
       if (location != 'chrome://browser/content/browser.xhtml') return;
    const
    // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    IconPath1 = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons', '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', 'icons')); // Pfad zum 2.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(`
    	#tabbrowser-arrowscrollbox::part(scrollbutton-up),
    	#tabbrowser-arrowscrollbox::part(scrollbutton-down) {
    		list-style-image: url("${IconPath2}/arrow-left.svg") !important;
    	}
    
    	#tabbrowser-arrowscrollbox[scrolledtostart="true"]::part(scrollbutton-up),
    	#tabbrowser-arrowscrollbox[scrolledtoend="true"]::part(scrollbutton-down) {
        	list-style-image: url("${IconPath2}/arrow-right.svg") !important;
    	}
          `), null, null);
       sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
    })();
    Alles anzeigen

    Hier die dazugehörige userChromeShadow.css:

    CSS
    /* userChromeShadow.css*/
    /*■■■■■■■■■■■■■■■■scrollbuttons tableiste■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox::part(scrollbutton-up),
    #tabbrowser-arrowscrollbox::part(scrollbutton-down) {
    	appearance: none !important;
    	background-color: gray !important;
    	box-shadow: none !important;
    	border: 0 !important;
    	border-radius: 0 !important;
    	width: 32px !important;
    	min-width: 32px !important;
    	max-width: 32px !important;
    	overflow: hidden !important;
    	padding-top: 0 !important;
    	padding-bottom: 0 !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox::part(scrollbutton-up):hover,
    #tabbrowser-arrowscrollbox::part(scrollbutton-down):hover {
    	appearance: none !important;
    	background-color: lightgray !important;
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox {
      &::part(scrollbutton-up), &::part(scrollbutton-down) {
    	--arrowscrollbox-scrollicon-hover-background-color: unset !important;
    	--arrowscrollbox-scrollicon-active-background-color: unset !important;
       }
    }
    /*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
    #tabbrowser-arrowscrollbox::part(scrollbutton-up),
    #tabbrowser-arrowscrollbox::part(scrollbutton-down) {
    	fill: green !important;
    	fill-opacity: 1.0 !important;
    }
    #tabbrowser-arrowscrollbox::part(scrollbutton-up):hover,
    #tabbrowser-arrowscrollbox::part(scrollbutton-down):hover {
    	fill: white !important;
    	fill-opacity: 1.0 !important;
    }
    #tabbrowser-arrowscrollbox[scrolledtostart]::part(scrollbutton-up),
    #tabbrowser-arrowscrollbox[scrolledtoend]::part(scrollbutton-down) {
    	fill: red !important;
    	fill-opacity: 1.0 !important;
    	opacity: 1.0 !important;
    	background-color: gray !important;
    }
    #tabbrowser-arrowscrollbox[scrolledtostart]::part(scrollbutton-up):hover,
    #tabbrowser-arrowscrollbox[scrolledtoend]::part(scrollbutton-down):hover {
    	fill: red !important;
    	fill-opacity: 0.6 !important;
    	opacity: 1.0 !important;
    }
    Alles anzeigen

    Dateien

    icons.zip 953 Byte – 51 Downloads
  • LoadingBar.uc.js script geht nicht mehr

    • Mitleser
    • 13. Dezember 2025 um 12:23
    Zitat von Endor

    Habt ihr eine Idee wie man das anpassen muss?

    Im Wesentlichen geht es um #urlbar-background. Daraus wurde .urlbar-background.
    Hier mal 'mein' bereits angepasstes Script als Beispiel:

    JavaScript
    // JavaScript Document
    // LoadingBar.uc.js
    // Location Bar Enhancer5.1; Loading Bar0.3.0
    // Firefox 145
    
    (function (){
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
        var cssStr = `
    
    #urlbar {
    	--lb-stripes-A-0: rgba(74,74,74,0) !important;
        --lb-stripes-A-1: rgba(74,74,74,1) !important;
        --lb-stripes-B-0: rgba(204, 82, 0,0) !important;
        --lb-stripes-B-1: rgba(204, 82, 0,0.5) !important;
    }
        		.urlbar-background {
    				background-color: var(--lb-stripes-A-1) !important;
    			}
    			.urlbar-background {
                    background-image: repeating-linear-gradient(-60deg, var(--lb-stripes-A-0), var(--lb-stripes-A-0) 4px, var(--lb-stripes-A-1) 4px, var(--lb-stripes-A-1) 8px), linear-gradient(to right, var(--lb-stripes-B-0) 0%, var(--lb-stripes-B-1) 100%);
    
                    background-size: 0% 0%;
                    background-repeat:repeat-x, no-repeat;
                    transition: background-size 350ms ease-in-out 0ms;
                }
                .urlbar-background:not([style="background-size: 0% 100%;"]) {
    /*            	transition: background-size 350ms ease-in-out 0ms;*/
                	animation: progress-bar-stripes 5s linear infinite;
                }
                @keyframes progress-bar-stripes {
                    from {
                        background-position: -360px 0;
                    }
                    to {
                        background-position: 360px 0;
                    }
                }
        `.replace(/\s{2,}|\r|\n/,"");
    
        var style = document.createProcessingInstruction("xml-stylesheet", "type=\"text/css\"" + " href=\"data:text/css;base64," + btoa(cssStr) + "\"");
        var mainW = document.getElementById("main-window");
        document.insertBefore(style, mainW);
    
        function main(window) {
          var {document, gBrowser} = window;
          function $(id) { return document.getElementById(id) };
          var urlbar = $("urlbar");
          const cl = '.urlbar-background';
          let pageProgress = 0;
          let async = makeWindowHelpers(window).async;
          var LoadingBar = {
            listener: {
              onChangeTab: function(e) {
                urlbar.querySelector(cl).style.backgroundSize = '0% 100%';
                pageProgress = 0;
              },
              onProgressChange: function(aBrowser,webProgress,request,curSelfProgress,maxSelfProgress,curTotalProgress,maxTotalProgress) {
                if (gBrowser.contentDocument === aBrowser.contentDocument) {
                    var val = (curTotalProgress-1)/(maxTotalProgress-1);
                    pageProgress = val;
                    urlbar.querySelector(cl).style.backgroundSize = (100*val) + '% 100%';
                    if (val > 0.9)
                      async(function() {
                        if (pageProgress > 0.95)
                            urlbar.querySelector(cl).style.backgroundSize = '100% 100%';
                    }, 1000);
                }
              },
              onStateChange: function() {
                if (pageProgress > 0.95){
                    async(function() {
                        urlbar.querySelector(cl).style.backgroundSize = '0% 100%';
                        pageProgress = 0;
                    }, 1000);
                }else{
                    urlbar.querySelector(cl).style.backgroundSize = '0% 100%';
                }
              }
            }
          };
    
          gBrowser.tabContainer.addEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
          gBrowser.addTabsProgressListener(LoadingBar.listener);
    
          unload(function() {
            gBrowser.tabContainer.removeEventListener('TabSelect',LoadingBar.listener.onChangeTab,false);
    
            gBrowser.removeTabsProgressListener(LoadingBar.listener);
          }, window);
        }
    
    
    
        watchWindows(main, "navigator:browser");
    
        function runOnLoad(window, callback, winType) {
          window.addEventListener("load", function() {
            window.removeEventListener("load", arguments.callee, false);
    
            if (window.document.documentElement.getAttribute("windowtype") == winType)
              callback(window);
          }, false);
        }
    
        function runOnWindows(callback, winType) {
          function watcher(window) {
            try {
              callback(window);
            }
            catch(ex) {}
          }
    
          let browserWindows = Services.wm.getEnumerator(winType);
          while (browserWindows.hasMoreElements()) {
            let browserWindow = browserWindows.getNext();
            if (browserWindow.document.readyState == "complete")
              watcher(browserWindow);
            else
              runOnLoad(browserWindow, watcher, winType);
          }
        }
    
        function watchWindows(callback, winType) {
          function watcher(window) {
            try {
              callback(window);
            }
            catch(ex) {}
          }
    
          runOnWindows(callback, winType);
    
          function windowWatcher(subject, topic) {
            if (topic == "domwindowopened")
              runOnLoad(subject, watcher, winType);
          }
          Services.ww.registerNotification(windowWatcher);
    
          unload(function() { Services.ww.unregisterNotification(windowWatcher) });
        }
    
        function unload(callback, container) {
          let unloaders = unload.unloaders;
          if (unloaders == null)
            unloaders = unload.unloaders = [];
    
          if (callback == null) {
            unloaders.slice().forEach(function(unloader) { unloader() });
            unloaders.length = 0;
            return null;
          }
    
          if (container != null) {
            container.addEventListener("unload", removeUnloader, false);
    
            let origCallback = callback;
            callback = function() {
              container.removeEventListener("unload", removeUnloader, false);
              origCallback();
            }
          }
    
          function unloader() {
            try {
              callback();
            }
            catch(ex) {}
          }
          unloaders.push(unloader);
    
    
        function removeUnloader() {
            let index = unloaders.indexOf(unloader);
            if (index != -1)
              unloaders.splice(index, 1);
          }
          return removeUnloader;
        }
    
        function makeWindowHelpers(window) {
          let {clearTimeout, setTimeout} = window;
    
          function async(callback, delay) {
            delay = delay || 0;
            let timer = setTimeout(function() {
              stopTimer();
              callback();
            }, delay);
    
            function stopTimer() {
              if (timer == null)
                return;
              clearTimeout(timer);
              timer = null;
            }
          }
    
          return {
            async: async,
          };
        }
    
    })();
    Alles anzeigen
  • Spammer haben es auch nicht leicht

    • Mitleser
    • 12. Dezember 2025 um 10:52

    Moin 2002Andreas . Ich habe das über eine Rufumleitung auf einen internen Anrufbeantworter gelöst.
    Ungefähr so:

    Rufumleitung > Alle Anrufe ohne Rufnummer an.... > Anrufe umleiten auf internen Anrufbeantworter > unbekannter Anrufer > Hier können Sie die konfigurierte Rufumleitung bearbeiten > Alle Anrufe ohne Rufnummer an > Anrufe umleiten auf internen Anrufbeantworter

    und
    Anrufbeantworter Name: unbekannter Anrufer>
    Anrufbeantworter > Anrufe > an alle Rufnummern > Rufannahme sofort > Nachrichten aufnehmen

    Klingelt nicht, und so kann auch der Bot selber eintscheiden ob er dir eine Nachricht hinterlässt,^^
    Der Privatanrufer mit versteckter Nummer hat aber wenigstens die Chance eine Nachricht zu hinterlassen und verschwindet nicht gleich im Nirvana..

  • Schaltbare vertikale Overlay-Zusatzleiste

    • Mitleser
    • 9. Dezember 2025 um 16:39
    Zitat von Horstmann

    Ich will aber nichts hören, hab extra die Testmaschine angeworfen

    :thumbup:👏:)

  • Schaltbare vertikale Overlay-Zusatzleiste

    • Mitleser
    • 9. Dezember 2025 um 15:17
    Zitat von Horstmann

    Das Scroll Feature funktioniert bei mir am Mac leider nicht.

    Hast du das in einem neuen Profil (ohne andere Toolbars) getestet? Mein Verdacht: Doppelte Nutzung der id #vert_toolbox. Und dort top: mit !important;. Dann kann das js toolbox.style.top = curPos + 'px'; das css nicht überschreiben. Sonst habe ich auch keine Lsg. parat.

    JavaScript
    #vert_toolbox {
            position: fixed !important;
            display: flex !important;
            top: ${isPosV};
            transform: translateY(-${isPosV});
            height: fit-content !important;
            width: fit-content !important;
            z-index: 6516516511 !important;
        }
  • Schaltbare vertikale Overlay-Zusatzleiste

    • Mitleser
    • 7. Dezember 2025 um 17:50

    FuchsFan DANKESCHÖN für das Testen! Das beruhigt mich dann ja schoneinmal ein wenig...

  • Schaltbare vertikale Overlay-Zusatzleiste

    • Mitleser
    • 7. Dezember 2025 um 17:36

    @Horstmann, wiedereinmal DANKE fürs Testen!

    Hier (Linux mit neuem Firefoxprofil) läuft es. Vielleicht funzt es ja unter Windows auch nicht? Das kann ich leider auch nicht testen.

Unterstütze uns!

Jährlich (2026)

33,3 %

33,3% (258,24 von 775 EUR)

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