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

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 10:40

    Aha.
    Aber das Verhalten ist doch so gewollt.

    Wenn kein Update vorliegt, schließt sich der Tab doch.
    Anders lässt sich das nicht umsetzen.
    Hatte ja schon erwähnt, warum das Skript aus #1 nicht mehr funktioniert.
    Sicherheit und Änderungen deshalb von Mozilla.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 10:02
    Zitat von 2002Andreas

    Hallo Mira.

    Ist er hier nicht, trotzdem kann ich das bestätigen.

    Mist.
    Kannst Du mir das noch mal genau erklären? Oder ein "Filmchen" davon machen?
    In der Zwischenzeit werde ich mein Testprofil tausendmal öffnen und schließen.
    Ma sehn.

    PS. Wenn Updates anliegen, vorhanden sind, schließt sich der Tab auch nicht!
    Soll er ja nicht.

  • Scaling/display problems

    • Mira_Belle
    • 18. Juni 2026 um 08:47
    Zitat von juzzlukin

    Ich greife in beiden Installationen auf dieselben Profile zu.

    Warum?
    Meiner Meinung nach ist es besser, Du würdest das eine BS konsequent vom anderen BS trennen!

    Die Profile das Profil auf dem einen BS hättest Du doch klonen können.

    Aber sicher wird Dir da jemand antworten, der Dir das ganze viel besser erklären kann,
    und warum eine solche Konstellation m.M. keine gute Idee ist
    und eventuell genau für solche Probleme prädestiniert ist.
    Zumal eine Einstellung in dem BS natürlich auch Auswirkungen auf den Firefox hat.
    Sind diese auf den Systemen unterschiedlich, hast Du schon den Salat.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 18. Juni 2026 um 08:36
    Zitat von juzzlukin

    I discovered a slight abnormality I did not recognize this at first. Now, regardless of an available update or not, when i reboot, the browser opens to about:addons for several seconds, then to travels to the previous active tab. Do you see this as well?

    Wenn der Firefox so konfiguriert ist, dass er auch bei Systemstart gestartet wird, ja.

    Zitat von juzzlukin

    EDIT: After a few more tries, I find that sometimes it returns to the previous active tab, and others times it stays at about:config

    Mh, beobachte das mal weiter. Eventuell muss da noch etwas mit den Zeitschleifen nachgebessert werden.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 17. Juni 2026 um 20:58

    juzzlukin Ich habe ganz einfach geschimpft wie ein Rohspatz und der KI an den Kopf geworfen, wie blöd sie doch ist.
    Grast das ganze Internet ab, aber lässt die wichtigste Quelle aus!
    Sie hat sich entschuldigt und mir fest versprochen auch in Zukunft diese Quelle in bedacht zu ziehen.

    I just swore like a sailor and told the AI right to her face how stupid she is.
    She scours the entire internet but leaves out the most important source!
    She apologized and promised me she'd make sure to include that source in the future.

    Searchfox

  • SkipToTopAndBottom.uc.js

    • Mira_Belle
    • 17. Juni 2026 um 20:09

    Da das alte Skript unter dem Firefox 152.0 nicht mehr funktionierte, habe ich mich mal wieder drann getraut.

    JavaScript
    //SkipToTopAndBottom.uc.js
    // Das Script erstellt im Kontextmenü zwei "Pfeile", nach oben und nach unten.
    // Mit diesen kann man schnell zum Anfang oder Ende einer Seite scrollen.
    
    // Source file https://www.camp-firefox.de/forum/thema/140683/?postID=1290621#post1290621
    
    /* ----------------------------------------------------------------------------------- */
    /*     Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen     */
    /*            %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons             */
    /* ----------------------------------------------------------------------------------- */
    //angepasst für Fx 152
    
    (function() {
    
        let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
        let up = "arrow-up.svg";
    
        let menuitem = document.createXULElement('menuitem');
            menuitem.id = 'context-to-top';
            menuitem.classList.add('menuitem-iconic');
            menuitem.setAttribute('tooltiptext' , 'Zum Seitenanfang springen');
            menuitem.style.setProperty('--menuitem-icon', 'url("' + ("file:" + ProfilePath + "/chrome/icons/" + up) + '")');
            menuitem.addEventListener('click', (event) => {
                if (event.button == 0) {
                    const
                            win = Services.wm.getMostRecentWindow("navigator:browser"),
                            browser = win.gBrowser.selectedBrowser,
                            scrollScript = `content.scrollTo ({ top: 0, left: 0, behavior: "smooth"});`;
                            browser.messageManager.loadFrameScript ( `data:,${encodeURIComponent(scrollScript)}`, false );
                }
            });
    
        let refItem = document.getElementById('context-reload');
        refItem.parentNode.insertBefore(menuitem, refItem);
         
        })();
    
        (function() {
    
        let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
        let down = "arrow-down.svg";
        
        let menuitem = document.createXULElement('menuitem');
            menuitem.id = 'context-to-bottom';
            menuitem.classList.add('menuitem-iconic');
            menuitem.setAttribute('tooltiptext' , 'Zum Seitenende springen');
            menuitem.style.setProperty('--menuitem-icon', 'url("' + ("file:" + ProfilePath + "/chrome/icons/" + down) + '")');
            menuitem.addEventListener('click', (event) => {
                if (event.button == 0) {
                    const
                            win = Services.wm.getMostRecentWindow("navigator:browser"),
                            browser = win.gBrowser.selectedBrowser,
                            scrollScript = `content.scrollTo ({ top: 100000, left: 0, behavior: "smooth"});`;
                            browser.messageManager.loadFrameScript ( `data:,${encodeURIComponent(scrollScript)}`, false );
                }
            });
    
        let refItem = document.getElementById('context-reload');
        refItem.parentNode.insertBefore(menuitem, refItem);
         
        })(); 
    Alles anzeigen
  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 17. Juni 2026 um 18:52

    2002Andreas Danke.
    Du glaubst gar nicht wie oft ich an dem Skript gebastelt habe!

    Hier mal einen Tipp an alle, die auch mithilfe von KI "arbeiten".
    Teilt den Dingern mit, dass sie auch auf Searchfox suchen sollen:!:
    Es nutzt nix, wenn die alles was mit JS zu tun hat abgrasen, wenn sie
    FFspezifisches nicht berücksichtigen. FuchsFan

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 17. Juni 2026 um 17:18

    Yes:!:

    Please test it.

    JavaScript
    // Atomatk-Addons-UpDate-Check.uc.js
    // Das Script führt automatisch einen UpDate-Check aus und dies in einem neuen Tab anzeigt.
    // Auch wird ein Button erstellt, der einen UpDate-Check ausführt und dies in einem neuen Tab anzeigt.
    
    // Source file https://www.camp-firefox.de/forum/thema/140656/?postID=1290593#post1290593
    
    /* ----------------------------------------------------------------------------------- */
    /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */
    /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */
    /* ----------------------------------------------------------------------------------- */
    
    (function() {
    "use strict";
    
        // Nur in einem normalen Browserfenster weiterarbeiten.
        if (!window.gBrowser) return;
    
        const
        // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                 id = 'addons-update-button', // Id des Buttons
               link = 'about:addons', // Linkziel des Buttons
              label = 'Add-ons Update', // Bezeichnung des Buttons
        tooltiptext = 'Add-ons aktualisieren',
        // Icon-------------------------------------------------------
               icon = 'sync.svg', // [Name.Dateiendung] des Symbols
             colour = '#8bff0f', // Farbe für das SVG-Icon setzen
           iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon beinhaltet
        // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
         curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    
        // SVG-Icons können CSS-Farbangaben übernehmen; das schaltet Firefox dafür frei.
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
    
        const
        // ■■ START ScriptConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
        STARTUP_DELAY_MS = 2500, // Verzögerung nach Firefox-Start, damit die Oberfläche fertig geladen ist.
             MAX_WAIT_MS = 12000, // Maximale Wartezeit darauf, dass about:addons vollständig geladen ist.
                 POLL_MS = 250; // Intervall für wiederholte Prüfungen.
        let
             startupDone = false, // Merkt sich, ob der Startvorgang schon einmal ausgeführt wurde.
                    busy = false; // Verhindert parallele Abläufe.
        // ■■ END ScriptConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
        //BUTTON
    	try {
          CustomizableUI.createWidget({
             id: id,
             defaultArea: CustomizableUI.AREA_NAVBAR,
             label: label,
             tooltiptext: tooltiptext,
    
             onCreated: (button) => {
                button.style.MozContextProperties = 'fill, stroke, fill-opacity';
                button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
                button.style.minWidth = 'fit-content';
              //  button.style.color = '#ffe10f'; // Farbe für das SVG-Icon setzen
                button.style.color = colour;
             }
          });
    	} catch(e) {};
        // Liefert das aktuellste Browserfenster.
        function getBrowserWindow() {
            return Services.wm.getMostRecentWindow("navigator:browser");
        }
        // Öffnet about:addons in einem neuen Tab.
        function openAddonsTab(win) {
            if (!win) return false;
            try {
                win.openTrustedLinkIn(link, "tab");
            return true;
            } catch (e) {
                return false;
            }
        }
    
        // Schließt den Tab nach 30s, wenn keine Updates gefunden wurden.
        function checkAndCloseIfNoUpdates(doc, win) {
            const messageEl = doc.getElementById('updates-message');
            if (messageEl && messageEl.getAttribute('state') === 'none-found') {
                win.setTimeout(() => {
                    try {
                        win.gBrowser.removeCurrentTab();
                    } catch (e) {}
                }, 2000); // 30 Sekunden 30000
            }
        }
    
        // Prüft, ob die Update-Elemente in about:addons schon vorhanden sind.
        function runOriginalAddonActions(doc, win) {
            try {
                const
                    options = doc.querySelector("addon-page-options"),
                    checkItem = doc.querySelector('panel-item[action="check-for-updates"]');
                // Update-Prüfung auslösen.
                if (options && checkItem) {
                    checkItem.click();
                }
                // Kurz warten, damit Firefox die Ergebnisse sichtbar aufbauen kann.
    
                win.setTimeout(function() {
                    try {
                        const categories = doc.getElementById("categories");
                        if (categories) {
                            const availableBtn = categories.querySelector('button[viewid="addons://updates/available"]');
                            if (availableBtn) availableBtn.click();
                            // 500ms warten, dann einmal prüfen
                            win.setTimeout(() => checkAndCloseIfNoUpdates(doc, win), 500);
                        }
                    } catch (e) {}
                    busy = false;
                }, 500);
    
                /*
                win.setTimeout(function() {
                    try {
                        const categories = doc.getElementById("categories");
                        if (categories) {
                            const availableBtn = categories.querySelector('button[viewid="addons://updates/available"]');
                            if (availableBtn) availableBtn.click();
                        }
                    } catch (e) {}
                    busy = false;
                }, 500); // Timeout auf 500ms erhöht für zuverlässigen Wechsel
                */
                } catch (e) {
                busy = false;
            }
        }
        /*
        function runOriginalAddonActions(doc, win) {
            try {
                const
                    options = doc.querySelector("addon-page-options"), // Bereich für die Add-ons-Optionen.
                    checkItem = doc.querySelector('panel-item[action="check-for-updates"]'), // Menüpunkt "Check for Updates".
                    recentItem = doc.querySelector('panel-item[action="view-recent-updates"]'); // Menüpunkt "View Recent Updates".
    
                // Erst die Ansicht der letzten Updates öffnen.
                if (options && recentItem) {
                    recentItem.click();
                }
    
                // Danach die Update-Prüfung auslösen.
                if (options && checkItem) {
                    checkItem.click();
                }
    
                // Kurz warten, damit Firefox die Ergebnisse sichtbar aufbauen kann.
                win.setTimeout(function() {
                    try {
                        const categories = doc.getElementById("categories");
    
                        if (categories) {
                        const
                            // Kategorie "recent updates" anklicken.
                            recentBtn = categories.querySelector('button[viewid="addons://updates/recent"]'),
                            // Kategorie "available updates" anklicken.
                            availableBtn = categories.querySelector('button[viewid="addons://updates/available"]');
    
                            if (recentBtn) recentBtn.click();
                            if (availableBtn) availableBtn.click();
                        }
                    } catch (e) {}
    
                    // Freigabe für neue Aktionen.
                    busy = false;
                }, 50);   // hier stand vorher 1500
            } catch (e) {
            busy = false;
            }
        }
        */
        // Wartet, bis about:addons vollständig geladen ist.
        function waitForAboutAddons(win, fromStartup) {
            const started = Date.now();
    
            function tick() {
                let doc = null;
                try {
                doc = win.gBrowser.selectedBrowser.contentDocument;
                } catch (e) {}
                // Nur weitermachen, wenn about:addons wirklich geöffnet ist.
                if (doc && doc.URL === "about:addons") {
                    try {
                        const
                        // Prüfen, ob die erwarteten UI-Elemente schon vorhanden sind.
                        options = doc.querySelector("addon-page-options"),
                        checkItem = doc.querySelector('panel-item[action="check-for-updates"]'),
                        recentItem = doc.querySelector('panel-item[action="view-recent-updates"]');
    
                        // Wenn alles da ist, die eigentliche Update-Logik starten.
                        if (options && checkItem && recentItem) {
                            runOriginalAddonActions(doc, win);
                            return;
                        }
                    } catch (e) {}
                }
                // Weiter warten, solange das Zeitlimit nicht überschritten ist.
                if (Date.now() - started < MAX_WAIT_MS) {
                    win.setTimeout(tick, POLL_MS);
                } else {
                    // Wenn die Zeit abgelaufen ist, wieder freigeben.
                    busy = false;
    
                    // Beim Start nicht weiter forcieren.
                    if (!fromStartup) {
                        openAddonsTab(win);
                    }
                }
            }
            tick();
        }
        // Gemeinsame Hauptfunktion für Start und Button.
        function runCheck(fromStartup) {
            if (busy) return;
            busy = true;
            const win = getBrowserWindow();
            if (!win) { 
                busy = false;
                return;
            }
            // Erst Tab öffnen.
            if (!openAddonsTab(win)) { 
                busy = false;
                return;
            }
            // Danach auf fertige Seite warten.
            waitForAboutAddons(win, fromStartup);
        }
        // Startprüfung nur einmal ausführen.
        function runStartupCheck() {
            if (startupDone) return;
            startupDone = true;
            const win = getBrowserWindow();
            if (!win) return;
            // Kleine Verzögerung, damit Firefox vollständig bereit ist.
            win.setTimeout(function() { 
                runCheck(true);
            }, STARTUP_DELAY_MS);
        }
        // Observer für den Zeitpunkt, an dem Firefox die Fenster wiederhergestellt hat.
        function onWindowsRestored(subject, topic) {
            if (topic !== "sessionstore-windows-restored") return;
            try {
                Services.obs.removeObserver(onWindowsRestored, "sessionstore-windows-restored");
            } catch (e) {}
            runStartupCheck();
        }
        // Observer registrieren.
        try {
            Services.obs.addObserver(onWindowsRestored, "sessionstore-windows-restored");
        } catch (e) {
            // Falls der Observer nicht verfügbar ist, per Timer versuchen.
            window.setTimeout(runStartupCheck, STARTUP_DELAY_MS);
        }
        // Button-Klick-Handler einrichten.
        (function click_button() {
            const button = document.getElementById(id);
            if (button) {
                button.addEventListener("click", (event) => {
                    // Nur linker Mausklick.
                    if (event.button !== 0) return;
                    // Das richtige Browserfenster ermitteln.
                    const win = event.target.documentGlobal || event.target.ownerGlobal;
                    // Keine parallelen Läufe.
                    if (busy) return;
                    busy = true;
                    // Verhalten wie beim Start: Tab öffnen und dann prüfen.
                    if (!openAddonsTab(win)) { 
                        busy = false;
                        return;
                    }
                    waitForAboutAddons(win, false);
                });
            } else {
            // Wenn der Button noch nicht existiert, erneut probieren.
            setTimeout(click_button, 100);
            }
        })();
    
    })();
    Alles anzeigen

    Wenn Du Anpassungen wünschst,
    z.B, ein integriertes Symbol für den Button,
    oder was auch immer, lass es mich wissen.

    If you'd like any customizations,
    such as an integrated icon for the button,
    or anything else, just let me know.

  • Quicklink.uc.js funktioniert nicht mehr

    • Mira_Belle
    • 17. Juni 2026 um 15:29

    Das mit dem Skript hat mir dennoch keine Ruhe gelassen:!:

    Und da ich ja eigen bin, habe ich das ganze Skript umgebaut.
    Mir gefällt das mit einem Bereich für Anwenderkonfigurationen einfach besser.
    Auch weil da niemand mehr im eigentlichen Code "rumfummeln" muss.

    Ach, die ID musste ich ändern, da ich schon einen anderen Button mit dieser habe.

    JavaScript
    // QuickLinkButton.uc.js
    // Das Script erstellt einen Button, der bei Linksklick, mehrere Tabs 
    // und bei Rechtsklich ein neues Fenster öffnet mit verschiedenen Webseiten.
    
    // Source file https://www.camp-firefox.de/forum/thema/140675/?postID=1290591#post1290591
    
    /* ----------------------------------------------------------------------------------- */
    /*     Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen     */
    /*            %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons             */
    /* ----------------------------------------------------------------------------------- */
    //angepasst für Fx 152
    
    (function() {
    
        if (!window.gBrowser){
            return;
        }
    
        let newWindow = null;
        const
        // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                 id = 'link-button_2', // Id des Buttons
           Sinistra = [
                      'https://www.ardmediathek.de/serie/morden-im-norden/staffel-12/Y3JpZDovL25kci5kZS80OTU1/12',
                      'https://www.ardmediathek.de/serie/mittendrin-flughafen-frankfurt/staffel-16/Y3JpZDovL2hyLW9ubGluZS8zODIyMDAzMw/16',
                      'https://www.zdf.de/serien/soko-koeln',
                      'https://www.daserste.de/unterhaltung/quiz-show/wer-weiss-denn-sowas/videos/index.html',
                    ],
             Dextra = [
                      'https://www.hr-fernsehen.de/tv-programm/index.html',
                      'https://www.swrfernsehen.de/tv-programm/index.html',
                      'https://www.wdr.de/programmvorschau/wdrfernsehen/uebersicht/index.html',
                    ],
              label = 'Quicklink', // Bezeichnung des Buttons
        tooltiptext = 'Quicklink',
        // Icon-------------------------------------------------------
               icon = 'pug.svg',  // [Name.Dateiendung] des Symbols
             colour = '#e0e0e0',  // Farbe für das SVG-Icon setzen
           iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon beinhaltet
         curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)); // Pfad zum Profil
        // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
        // Erlaubt korrekte .svg Icons Darstellung in allen UI Bereichen
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
       //BUTTON
    	try {
          CustomizableUI.createWidget({
             id: id,
             defaultArea: CustomizableUI.AREA_NAVBAR,
             label: label,
             tooltiptext: tooltiptext,
    
             onCreated: (button) => {
                button.style.MozContextProperties = 'fill, stroke, fill-opacity';
                button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
                button.style.minWidth = 'fit-content';
                button.style.color = colour;
             }
          });
    	} catch(e) {};
    
        (function click_button() {
            const button = document.getElementById(id);
            if (button) {
                button.addEventListener('click', function(event) {
                    if (event.button == 0) {
                        newWindow = null;
                        Sinistra.forEach(url => {
                            event.target.documentGlobal.openTrustedLinkIn(url, "tab");
                        });
                    }
                    else if (event.button == 2) {
                        event.preventDefault();
                        newWindow = OpenBrowserWindow();
                        setTimeout(() => {
                            Dextra.forEach((url, index) => {
                                newWindow.openTrustedLinkIn(url, index === 0 ? "current" : "tab");
                            });
                        }, 500);
                    }
                });
          } else {
             setTimeout(click_button, 100);
          }
        })();
    
    })();
    Alles anzeigen
  • Quicklink.uc.js funktioniert nicht mehr

    • Mira_Belle
    • 16. Juni 2026 um 22:37

    2002Andreas Entschuldige, dass ich Dir da nicht wirklich habe weiter helfen können.

    Um so mehr freut es mich, dass Du selbst eine Lösung gefunden hast.

  • Quicklink.uc.js funktioniert nicht mehr

    • Mira_Belle
    • 16. Juni 2026 um 17:47

    Muss noch mal nach haken!

    Die neuen Tabs sollen sich bei Rechts, so wie bei Linksklick in einem neuen Fenster öffnen?
    Oder nur die neuen Tabs bei Rechtsklick?
    Oder nur bei Linksklick?

  • Quicklink.uc.js funktioniert nicht mehr

    • Mira_Belle
    • 16. Juni 2026 um 17:35

    Funktioniert DER so, wie Du Dir das vorstellst?

    JavaScript
    (function() {
    
      if (!window.gBrowser)
    	return;
    
      const
      // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                id = 'link-button', // Id des Buttons
             label = 'Quicklink', // Bezeichnung des Buttons
       tooltiptext = '',
      // Icon-------------------------------------------------------
              icon = 'chronik7.png',  // [Name.Dateiendung] des Symbols
          iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon beinhaltet
        curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)); // Pfad zum Profil
      // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
      // Erlaubt korrekte .svg Icons Darstellung in allen UI Bereichen
    	if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
    		Services.prefs.setBoolPref('svg.context-properties.content.enabled', true );
    	}
      //BUTTON
      try {
        CustomizableUI.createWidget({
          id: id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: label,
          tooltiptext: tooltiptext,
    
          onCreated: (button) => {
            // Optik
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
            button.style.minWidth = 'fit-content';
            button.style.color = colour;
          }
        });
    	} catch(e) {};
    
      //click
      (function click_button() {
        const button = document.getElementById(id);
        if (button) {
          button.addEventListener('click', event => {
            if (event.button === 0) {
              openTrustedLinkIn('https://www.zdf.de/serien/soko-koeln',"tab");
              openTrustedLinkIn('https://www.daserste.de/unterhaltung/quiz-show/wer-weiss-denn-sowas/videos/index.html',"tab");
            }
            else if (event.button == 2) {
              openTrustedLinkIn('https://www.hr-fernsehen.de/tv-programm/index.html',"current");        
              openTrustedLinkIn('https://www.swrfernsehen.de/tv-programm/index.html',"tab");
              openTrustedLinkIn('https://www.zdf.de/reportagen/abenteuer-auswandern-104',"tab");
            }
          });
        } else {
          setTimeout(click_button, 100);
        }
      })();
    })();
    Alles anzeigen
  • Blaue Umrandung des Adressfeldes

    • Mira_Belle
    • 16. Juni 2026 um 17:16
    Zitat von 2002Andreas

    Teste bitte wieder:

    CSS
    #urlbar {
    	--toolbar-field-border-color-focus: red !important;
    }

    :thumbup:

    Das war es! Danke.

  • Blaue Umrandung des Adressfeldes

    • Mira_Belle
    • 16. Juni 2026 um 15:30

    Kann das mit diesem Eintrag etwas zu tun haben?

    CSS
    :focus-visible {
     outline: initial;
    }

    Da ist dann ein kleines Schloss davor.



  • Blaue Umrandung des Adressfeldes

    • Mira_Belle
    • 16. Juni 2026 um 15:19

    Danke Andreas, aber das ist es auch nicht!

    Über diesen Selektor bin ich auch schon gestolpert, aber keiner von denen ich dachte, dass es der sein könnte,
    hat eine Veränderung gebracht, wenn ich ihn z.B. in rot "eingestellt" habe.

    Was mich ja total irritiert, ist der Umstand, wie die Voraussetzungen sein müssen, dass dieser blaue Rand zu sehen ist.

    Firefox muss im Vordergrund sein und der Cursor muss im Adressfeld stehen.
    Öffne ich die Browserwerkzeuge, ist ja dessen Fenster im Vordergrund und der blaue Rand dann nicht mehr Vorhanden!
    Sobald ich aber den Fuchs wieder in den Vordergrund hole, ist dieser blöde Rand wieder da.

    Ach, und mit einem Theme hat das nicht zu tun, mehrere ausprobiert.

  • Blaue Umrandung des Adressfeldes

    • Mira_Belle
    • 16. Juni 2026 um 10:15

    Habe eine blaue Umrandung um das Adressfeld,
    aber nur, wenn der Cursor sich darinnen befindet.
    Weis nicht wie ich das beschreiben soll.

    Wenn ich nun mit den Browserwerkzeugen versuche, den Selektor dafür zu finden,
    ist die Umrandung leider nicht sichtbar!
    Das Fenster muss aktiv sein. Toll.

    Kann mir da jemand helfen? Ich will das weg haben.
    Entweder transparent oder ganz weg (none, hidden oder was auch immer)
    transparent, wäre natürlich besser, da ich damit ja mehr anstellen kann.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 14. Juni 2026 um 20:05

    Achtung:!: juzzlukin

    Nicht die Updatefunktion von Firefox mit der, der Erweiterungen verwechseln.
    Das hat nichts miteinander zu tun.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 14. Juni 2026 um 15:08

    Sorry, 2002Andreas wenn ich das nun abwürge, es geht ja eigentlich nicht um dieses Skript!

    Eingangs gab es die Fragestellung, ob man das Skript von xiaoxiaoflood nicht wieder zum Laufen bringen könnte.
    Kurz, nein.
    Aus Sicherheitsgründen geht das so nicht mehr.

    So wie ich das verstanden habe, wurde im Hintergrund auf Updates der Addons geprüft und nur dann,
    also es kam da wohl auch darauf an wie die Einstellungen waren, entweder aktualisiert oder
    eben die Page (about:addons) geöffnet.

    DAS funktioniert, wie gesagt aus Sicherheitsgründen, SO nicht mehr. (Wenn ich nicht irre)

    Daher meine Idee des Skriptes aus #8.
    Der Haken, die Page (about:addons) wird immer geöffnet UND, das ist der springende Hüpf,
    bleibt offen, eben auch dann, wen es gar keine Updates gibt!

    Das ganze off Topic hier, also mit den vielen anderen Versionen, alle mit dem gleichen Ziel,
    hat mich aber auf eine Idee gebracht:!:

    Dafür muss ich mich mal bedanken, denn das ist mir gar nicht aufgefallen.

    Die Schaltfläche:!:
    Rechts, neben dem Zahnrad. Fällt Euch was auf?

    Wenn keine Updates vorliegen, was steht denn dann da?

    Und kann jemand meinem Gedankengang folgen?

    juzzlukin Es wird nun ein paar Tage dauern, bis ich meine Idee umgesetzt bekomme.
    Habe Geduld.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 14. Juni 2026 um 14:15

    Ah, dann habe ich es falsch verstanden.
    Bei meinem Skript bleibt halt die Anzeige auf "Verfügbare Updates" stehen,
    und der rechte Bereich ist halt leer.
    Daher meine Verwunderung.

    Gibt halt bei allen "Lösungen" klitzekleine Unterschiede.

  • extensionsUpdateChecker.uc.js no longer works

    • Mira_Belle
    • 14. Juni 2026 um 14:08

    2002Andreas :?:


    Merkwürdig, aber wenn es bei Dir ja funktioniert, ist ja alles bestens.

Unterstütze uns!

Jährlich (2026)

69,4 %

69,4% (538,17 von 775 EUR)

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