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

Beiträge von FuchsFan

  • Wetterfuchsbutton Script für userChrome.js

    • FuchsFan
    • 29. Juni 2026 um 10:45
    Zitat von Mira_Belle

    Ich denke, mit der Möglichkeit per ESC und dem Linksklick außerhalb des Panels, sind doch nun zwei gute Möglichkeiten
    geschaffen worden, damit das Panel auch wieder geschlossen werden kann.

    Aber Mira_Belle , es wird niemand gezwungen meinen Lösungsvorschlag umzusetzen, es war mein guter Wille eine Lösung zu suchen, weil Hilfe erwartet wurde.

  • Wetterfuchsbutton Script für userChrome.js

    • FuchsFan
    • 29. Juni 2026 um 09:20
    Zitat von Mira_Belle

    Mh, das Ganze hat aber auch den Nachteil, dass keine Links angeklickt werden können!

    Mira_Belle

    Sorry, darauf habe ich nicht geachtet (weil ich auch nicht damit arbeite). Dann hier der neue Absatz // Panel erstellen, da können dann auch Links geöffnet werden, Panel schließt nur bei Klick außerhalb.

    JavaScript
    // Panel erstellen
      function createPanel() {
        let doc = document;
        let panel = doc.createXULElement('panel');
        panel.id = "wetterfuchs-panel";
        panel.setAttribute('noautohide', "false");
        panel.setAttribute('type', "arrow");
        panel.setAttribute('position', "after_end");
    
        panel.addEventListener('popuphiding', () => {
          clearPanel();
        });
    	
        // Klick außerhalb: Panel schließen
        function closePanel(event) {
        if (panel.state !== "open")
        return;
    
        const button = document.getElementById(id);
    
        // Klick auf den Button -> Menü/Panel nicht sofort schließen
        if (button && button.contains(event.target))
        return;
    
        // Klick innerhalb des Panels -> Links funktionieren lassen
        if (panel.contains(event.target))
        return;
    
        panel.hidePopup();
        }
    
        document.addEventListener("mousedown", closePanel, true);
        
        let vbox = doc.createXULElement('vbox');
        vbox.setAttribute('flex', '1');
        panel.appendChild(vbox);
    
        let browser = doc.createXULElement('browser');
        browser.id = "wetterfuchs-iframe";
        browser.setAttribute('type', 'content');
        browser.setAttribute('flex', '1');
        browser.setAttribute('remote', 'true');
        browser.setAttribute('maychangeremoteness', 'true');
        browser.setAttribute('disableglobalhistory', 'true');
        browser.setAttribute('src', wfthrobber);
        vbox.appendChild(browser);
    	
    	// Mittelklick auf den Browser öffnet die aktuelle Seite in einem neuen Tab
        browser.addEventListener("auxclick", event => {
        if (event.button === 1) {
            event.preventDefault();
            openUrlFromPanel();
          }
        });
    
        doc.getElementById('mainPopupSet').appendChild(panel);
        return panel;
      }
    Alles anzeigen
  • Wetterfuchsbutton Script für userChrome.js

    • FuchsFan
    • 28. Juni 2026 um 22:37

    Oder im Script die Funktion // Panel erstellen durch diesen Abschnitt ersetzen.

    JavaScript
      // Panel erstellen
      function createPanel() {
        let doc = document;
        let panel = doc.createXULElement('panel');
        panel.id = "wetterfuchs-panel";
        panel.setAttribute('noautohide', "false");
        panel.setAttribute('type', "arrow");
        panel.setAttribute('position', "after_end");
    
        // Panel bei Klick außerhalb schließen
        panel.addEventListener('popuphiding', clearPanel);
    
        // Klick ins Panel: bei Linksklick schließen
        panel.addEventListener('mousedown', (event) => {
          if (event.button === 0) panel.hidePopup();
          else if (event.button === 1) openUrlFromPanel();
        });
    
        // Klick außerhalb: Panel schließen
        document.addEventListener('click', (event) => {
          if (panel.state === "open" && !panel.contains(event.target) && event.target.id !== id) {
            panel.hidePopup();
          }
        });
    
        let vbox = doc.createXULElement('vbox');
        vbox.setAttribute('flex', '1');
        panel.appendChild(vbox);
    
        let browser = doc.createXULElement('browser');
        browser.id = "wetterfuchs-iframe";
        browser.setAttribute('type', 'content');
        browser.setAttribute('flex', '1');
        browser.setAttribute('remote', 'true');
        browser.setAttribute('maychangeremoteness', 'true');
        browser.setAttribute('disableglobalhistory', 'true');
        browser.setAttribute('src', wfthrobber);
        vbox.appendChild(browser);
    
        doc.getElementById('mainPopupSet').appendChild(panel);
        return panel;
      }
    Alles anzeigen
  • Wetterfuchsbutton Script für userChrome.js

    • FuchsFan
    • 28. Juni 2026 um 21:58

    Endor

    Vor einiger Zeit hatte Freund Büssen mich gebeten sein Script zum öffnen einer analogen Uhr wieder funktionstüchtig zu machen. Es lag genau das Problem an, dass die Uhr nur nach einem Neustart wieder geschlossen wurde. Mit KI konnte ich es dann wieder so lauffähig machen, dass bei einem Klick irgendwo in das Fenster die Uhr wieder geschlossen wird. Das ist der Abschnitt, der in das Script eingearbeitet wurde, eventuell hilft es weiter.

    JavaScript
      // Close listener installieren wenn Panel offen ist
    			panel.addEventListener('popupshown', event => {
    				if (this._closeListener)
    					return;
    
    				const btn = document.getElementById('uhr-toolbarbutton');
    				this._closeListener = (ev) => {
    					try {
    						// Panel / Button Klick nicht zum Schließen nutzen
    						if (ev.target && panel.contains && panel.contains(ev.target))
    							return;
    						if (btn && ev.target && btn.contains && btn.contains(ev.target))
    							return;
    
    						// irgendwo im Browserfenster => schließen
    						if (panel.state === "open")
    							panel.hidePopup();
    					} catch (e) {}
    				};
    
    				// Capture: zuverlässiger auch in neuen FF-Versionen
    				window.addEventListener('mousedown', this._closeListener, true);
    				window.addEventListener('touchstart', this._closeListener, true);
    			});
    Alles anzeigen
  • Im Appmenu-Javascript funktioniert ein Aufruf nicht.

    • FuchsFan
    • 27. Juni 2026 um 09:59
    Zitat von Dharkness

    würde die Variante auch den vorhandenen angepinnten Tab öffnen, oder würde ein neuer Tab geöffnent werden?

    Ich arbeite zwar nicht mit angepinnten Tabs, aber Variante 2 würde einen neuen Tab öffnen.

  • Im Appmenu-Javascript funktioniert ein Aufruf nicht.

    • FuchsFan
    • 27. Juni 2026 um 09:49
    Zitat von Dharkness

    Funktioniert, Dankeschön.

    Bitteschön. :)

    Eine zweite Möglichkeit wäre das gewesen:

    Code
    command: "openTrustedLinkIn('about:addons', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
  • Im Appmenu-Javascript funktioniert ein Aufruf nicht.

    • FuchsFan
    • 27. Juni 2026 um 08:39
    Zitat von Dharkness

    was muss korrigiert werden?

    Trage das bitte ein zum Aufruf:

    Code
    command: "BrowserAddonUI.openAddonsMgr();",
  • Firefox View

    • FuchsFan
    • 22. Juni 2026 um 19:44
    Zitat von grisu2099

    Genau deswegen habe ich dann noch mal angefangen zu basteln... :saint:

    :thumbup:

  • Firefox View

    • FuchsFan
    • 22. Juni 2026 um 19:39
    Zitat von grisu2099

    Das war die einzige Möglichkeit, die ich gefunden habe, um die Hoverfarbe links im Navi-Bereich so zu gestalten.

    Das ist auch nicht mehr so einfach, musste auch nach Möglichkeiten suchen. Eine Variante hatte ich hier schon gezeigt, bin jetzt auch dabei geblieben.

    CSS
    /* =========================================
       Sidebar Buttons (alle)
    ========================================= */
    
    /* Inaktive Buttons */
    :root {
       --button-background-color-ghost: #e0e0e0 !important;
    }
    
    /* Firefox Buttons / HG rechts */
    moz-page-nav-button {
       --page-nav-button-border-radius: 0 60px 60px 0 !important;
       /* Farben */
       --page-nav-button-background-color-selected: #228b22 !important;
       --page-nav-button-background-color-hover: #26f7fd !important;
       --page-nav-button-background-color-active: greenyellow !important;
       /* Textfarbe */
       --page-nav-button-text-color: black !important;
       --page-nav-button-text-color-hover: #480607 !important;
       --page-nav-button-text-color-active: blue !important;
    }
    moz-page-nav-button:hover {
        background: #9dff00 !important;
    	background-repeat: no-repeat !important;
    	background-position: 12px 10px !important;
    }
    
    /* Buttons / HG links */
    moz-page-nav-button {
       border: 2px solid #3b2f2f !important;
       border-radius: 60px  !important;
       background-color: #ffffe4 !important;
       width: 260px !important;
       margin-left: 20px !important;
    }
    
    /* aktiver Button */
    button[aria-selected="true"] {
        appearance: none !important;
        border: 2px solid white !important;
    }
    a.moz-page-nav-link,
    button[aria-selected="false"] {
        appearance: none !important;
        border: 2px solid white !important;
    }	
    
    /* Textfarbe im aktiven Button */  
    button[selected] {
       color: yellow !important;  
    }
      
    /* blauer Rand links im aktiven Button ausgeblendet */
    @media not (prefers-contrast) {
       button::before {
       content: "";
       display: none !important;
      }
    }
    }
    
    /* Button Einstellungen ENDE */	
    Alles anzeigen
  • Firefox View

    • FuchsFan
    • 22. Juni 2026 um 19:26
    Zitat von grisu2099

    Nein. die habe ich dann im kompletten Code anders angesprochen... ;)

    Das sollte bei dir ja wohl so sein;):thumbup:

  • Firefox View

    • FuchsFan
    • 22. Juni 2026 um 19:22

    grisu2099

    Danke für die Vorlage, wieder ein neuer Ansatz. Mir ist dabei aufgefallen, dass bei hover die Button in den Menüs mit angesprochen werden. Ist das so von dir beabsichtigt?

    Beispiel:

  • JavaScript Lesezeichen Manager öffnen geht nicht mehr.

    • FuchsFan
    • 21. Juni 2026 um 09:21

    Dharkness

    Dann teste mal dieses, funktioniert hier von 152 bis 154.

    JavaScript
    // Bookmarksmanager.uc.js
    // Autor @BrokenHeart aus link-button.uc.js umgeschrieben
    // FF 152+
    
    (function() {
    
        if (!window.gBrowser){
            return;
        }
    
        let newWindow = null;
    
        try {
           CustomizableUI.createWidget({
              id: 'bookmarks-manager-button',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {
                var toolbaritem = aDocument.createXULElement('toolbarbutton');
                var props = {
                    id: 'bookmarks-manager-button',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Lesezeichen Manager',
                    accesskey: 'e',
                    tooltiptext: 'Lesezeichen Manager oeffnen',
                    style: 'list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnklEQVQ4y6XTPYgVVxTA8f/ce2fu7Mx7vuf6srsa425cxFWEiDwCgpXpErELIVYWVolYWGmdKoVdLGwUGwXFJggWwq42hpBmiUaW1f2I7Pfs+p6773Pm3jspXtwEIhLwNIdTnB/nHDjwgeGNXrhz2JfysPC8/9fgrLAmez7105lnAOpAZejxwYGBiud5QA78N3cyRymSLG6kHBmJ+G1ueX0KPgJQ8ytppbXZ/tt/N5Aax9gnEUndUm84Xm/aytuJVBxZzn3VT0lbjMkoFIskawmDQ4MALC8ts3vPx9STJcKoSK3r8/CP9vZKqhhJjh/sZyB2ZFlGuVxmYSFleLgHzBaa7N8/SDJxlXj3SZZ0lesT8h/Aw1Kr1dAGjDEYY+h2uyRJAkCapiTzk4TpS7orIbUdo3jYbUD4SqJ1gNaaMAzRWhMEvVprjQ588pVHxJ+eQDRnCESGr/41QeALCnFEHAustcRxTNZcIepOkdsO0eZLivYZQh2lsKtEafUmJ8p93LldOZ21my3lkdNoNChKhXMOYwx27QnmzXVk3y524qEKZTCzyD7H3uwpl6ot8u7wXVbnppX2JYU4Jo57QBAEtPZ9CYsvoPWAoOCBWAMrgBwVtbGdOp3X6+M27fyglPRQvsL3fZxz+L6PHxbRY5fJFg9g1r9DFTKgB+TOMvnnCMNbW9+7jHlVb6Zr1x5OC19CnoMQHtZZpFBIPlMXR2VZ7ehC6noGMN0eMtWz87MAaiZ583UcBkIJsX3ZABOkqLQa3j+mj7euEIBdpeEFKLGH8ItDv7fe+zA3btyr/vrkl32dcXHeJWxlk0y0fubzzgNOmSmemle02/c5AqDeBUgpyzNzy9+M7B3b6F94/qPd4FZ0mlmAdJwFUeJbIXu9fwFVCBajMWIWPQAAAABJRU5ErkJggg==");'
                 };
    
                 for (var p in props)
                    toolbaritem.setAttribute(p, props[p]);
    
                 return toolbaritem;
              }
           });
        } catch(e) {}
    
        document.getElementById('bookmarks-manager-button').addEventListener( 'command', function(event) {
    
                newWindow = null;
    
                event.target.documentGlobal.openTrustedLinkIn( 'chrome://browser/content/places/places.xhtml', 'tab' );
    
            },
            true
        );
    
    })();
    Alles anzeigen
  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 20. Juni 2026 um 11:08

    Nur nochmal der Hinweis, damit das Script aus #69 auch immer die Rubrik "Verfügbare Updates" anzeigt (sofern Updates verfügbar sind), so muss dort immer der Haken entfernt werden (bei mir dafür der rote Punkt).

  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 18. Juni 2026 um 22:23
    Zitat von Mira_Belle

    aber man kann auch der doofen KI in den Arsch treten

    Ich traue mich immer nicht so heftig zu reagieren, sonst streikt sie womöglich noch. ;)

  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 18. Juni 2026 um 22:07
    Zitat von Mira_Belle

    Nimm mir meinen Kraftausdruck bitte nicht krumm,

    Das wäre ja schlimm.;)

    Zitat von Mira_Belle

    aber ich finde, wenn bei jeder kleinsten Anpassung jedes Mal ein komplett anderer Code gepostet wird,
    stiftet das nur durcheinander.

    Da stimme ich dir zu, aber du kennst das ja auch, wenn man nach Lösungen sucht, und sie funktionieren letztendlich, dann ist man erst einmal "glücklich". Der erste Code war ja auch gut, bloß wenn KI dann alles wieder ummodelt damit es funkt, es ist nicht so einfach. Aber egal, dann einigen wir uns auf das Script aus #69. Einverstanden?

  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 18. Juni 2026 um 21:35
    Zitat von Mira_Belle

    Und hier die Lösung.

    Mira_Belle

    Danke, werde ich testen. Ja funktioniert, schön wäre natürlich, wenn der Tab im Vordergrund öffnet, das habe ich bei meiner Lösung realisiert.

    Und hier meine Lösung:

    JavaScript
    // AddonSuche4.uc.js
    // Firefox 152+
    
    (async function () {
        if (location.href !== "chrome://browser/content/browser.xhtml")
            return;
    
        var AddonManager = ChromeUtils.importESModule(
            "resource://gre/modules/AddonManager.sys.mjs"
        ).AddonManager;
    
        function findUpdatesForAddon(addon) {
            return new Promise(function (resolve) {
                var hasUpdate = false;
    
                addon.findUpdates({
                    onUpdateAvailable: function (aAddon, install) {
                        hasUpdate = true;
                    },
    
                    onNoUpdateAvailable: function () {
                    },
    
                    onUpdateFinished: function () {
                        resolve(hasUpdate);
                    }
                }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
            });
        }
    
        async function checkForUpdates() {
            await AddonManager.readyPromise;
    
            var updates = [];
            var addons = await AddonManager.getAllAddons();
    
            for (var i = 0; i < addons.length; i++) {
                var addon = addons[i];
    
                if (addon.type !== "extension")
                    continue;
    
                if (!(addon.permissions & AddonManager.PERM_CAN_UPGRADE))
                    continue;
    
                var hasUpdate = await findUpdatesForAddon(addon);
    
                if (hasUpdate) {
                    updates.push({
                        id: addon.id,
                        name: addon.name,
                        disabled: !!(addon.userDisabled || addon.appDisabled)
                    });
                }
            }
    
            if (!updates.length)
                return;
    
            console.log(
                "Gefundene Add-on-Updates:",
                updates.map(function (u) {
                    return u.name + (u.disabled ? " (deaktiviert)" : "");
                })
            );
    
            var win = Services.wm.getMostRecentWindow("navigator:browser");
            if (!win || !win.gBrowser)
                return;
    
            var tab = win.gBrowser.addTrustedTab("about:addons");
    
            // Tab in den Vordergrund holen
            win.gBrowser.selectedTab = tab;
            win.focus();
    
            // Erst den normalen about:addons-Zustand laden, dann auf Updates umschalten.
            tab.linkedBrowser.addEventListener(
                "DOMContentLoaded",
                function listener() {
                    tab.linkedBrowser.removeEventListener(
                        "DOMContentLoaded",
                        listener
                    );
    
                    tab.linkedBrowser.loadURI(
                        Services.io.newURI("about:addons#updates")
                    );
                },
                { once: true }
            );
        }
    
        setTimeout(checkForUpdates, 2000);
    })();
    Alles anzeigen
  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 18. Juni 2026 um 19:17
    Zitat von Mira_Belle

    Funktioniert so weit! Habe auch die Zeitschleife etwas kürzer gemacht!

    Updates werden aber nur für aktive Addons angezeigt.

    Mira_Belle

    Danke für den Test! Das war erst einmal ein Versuch, werde aber weiter daran arbeiten. Nur bei aktiven Button, dass muss ich prüfen. Eine Erweiterung dieses Scriptes brachte nur die inaktiven Addon, da gibt es noch Nachholebedarf.

  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 18. Juni 2026 um 12:52
    Zitat von 2002Andreas

    Neustart..nichts passiert...erst wenn ich selber danach suche

    Gerade einen andere Fox getestet, auch da funktionierte es, wie von mir angegeben. :/

  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 18. Juni 2026 um 12:31
    Zitat von 2002Andreas

    Eine Weile gewartet, nichts passiert.

    Ich hatte 6 fehlende Updates, nach Start wurde sofort about:addons im Tab geöffnet, alle Updates installiert, Firefox Neustart, keine Reaktion. :/

  • extensionsUpdateChecker.uc.js no longer works

    • FuchsFan
    • 18. Juni 2026 um 11:26

    Ihr könnt ja mal dieses Script testen, es prüft gleich nach dem Start, ob Updates vorhanden sind, gibt es sie, so wird in einem neuen Tab der Addonmanager geöffnet. Gibt es keine Updates, dann passiert weiter nichts.

    JavaScript
    // addonUpdateNotifier.uc.js
    // Firefox 152+
    
    (async function() {
        if (location.href !== "chrome://browser/content/browser.xhtml")
            return;
    
        const { AddonManager } =
            ChromeUtils.importESModule(
                "resource://gre/modules/AddonManager.sys.mjs"
            );
    
        async function checkForUpdates() {
            let foundUpdate = false;
    
            let addons = await AddonManager.getAddonsByTypes(["extension"]);
    
            for (let addon of addons) {
                if (!(addon.permissions & AddonManager.PERM_CAN_UPGRADE))
                    continue;
    
                await new Promise(resolve => {
                    addon.findUpdates({
                        onUpdateAvailable(aAddon, install) {
                            foundUpdate = true;
                        },
    
                        onNoUpdateAvailable() {},
    
                        onUpdateFinished() {
                            resolve();
                        }
                    }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
                });
    
                if (foundUpdate)
                    break;
            }
    
            if (foundUpdate) {
                let win = Services.wm.getMostRecentWindow("navigator:browser");
    
                let tab = win.gBrowser.addTrustedTab(
                    "about:addons"
                );
    
                tab.linkedBrowser.addEventListener(
                    "DOMContentLoaded",
                    function listener() {
                        tab.linkedBrowser.removeEventListener(
                            "DOMContentLoaded",
                            listener
                        );
    
                        // "available-updates"
                        tab.linkedBrowser.loadURI(
                            Services.io.newURI(
                                "about:addons#updates"
                            )
                        );
                    },
                    { once: true }
                );
            }
        }
    
        setTimeout(checkForUpdates, 10000);
    })();
    Alles anzeigen

Unterstütze uns!

Jährlich (2026)

70,5 %

70,5% (546,48 von 775 EUR)

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