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

Beiträge von Endor

  • 3 Strich Menü -> Lesezeichen verwalten, Fabe ändern ?

    • Endor
    • 17. Juli 2026 um 19:47

    Gerne.

    Mfg.
    Endor

  • 3 Strich Menü -> Lesezeichen verwalten, Fabe ändern ?

    • Endor
    • 17. Juli 2026 um 13:43
    Code
    user_pref("ui.popup.disable_autohide",false);

    Das sollte passen.
    Mfg.
    Endor

  • In memoriam

    • Endor
    • 14. Juli 2026 um 13:31

    R.I.P.

    Mfg.
    Endor

  • Firefox 115.37.0 32 Bit – Whatsapp Web funktioniert nicht mehr

    • Endor
    • 14. Juli 2026 um 11:51

    Hallo Fuchsi.

    Was Office 2010 und Adobe betrifft, da kannst Du ohne Sorgen das
    Update von Windows 7 nach Windows 10 machen. Habe ich hier auch
    gemacht. Und keinerlei Probleme nachher bemerkt oder gehabt.

    Mfg.
    Endor

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

    • Endor
    • 10. Juli 2026 um 12:07

    Thank you jizz.

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

    • Endor
    • 10. Juli 2026 um 11:42

    Gerne doch!:)

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

    • Endor
    • 10. Juli 2026 um 08:40
    Zitat von FuchsFan

    mit einer Ausnahme bei Lesezeichen.

    In dieser Version funktioniert Lesezeichen jetzt auch:

    JavaScript
    // ==UserScript==
    // @name        MenubarReplaceWithButton.uc.js
    // @description Hauptmenü durch Schaltflächen ersetzen
    // @author      unknown
    // @version     0.1.3
    // @include     main
    // @note        20260705 Menüleiste der ersten Ebene erstellt keinen Platzhalterknoten mehr für menu-iconic-left.
    // @note        20260705 Menüleiste wurde in eine Menüstruktur ohne Symbole geändert, und der Menü-Symbol-Knoten wurde entfernt.
    // ==/UserScript==
    
    (function () {
        if (location != "chrome://browser/content/browser.xhtml") return;
    
        const BUTTON_ID = "main-menubar_button";
        const POPUP_ID = "main-menubar_popup";
    
        try {
            CustomizableUI.createWidget({
                id: BUTTON_ID,
                type: "custom",
                defaultArea: CustomizableUI.AREA_NAVBAR,
                onBuild(aDocument) {
                    let toolbaritem = aDocument.createXULElement("toolbarbutton");
                    setButtonAttributes(toolbaritem);
                    return toolbaritem;
                },
            });
        } catch (e) {}
    
        window.addEventListener("MozAfterPaint", init, { once: true });
    
        function init() {
            let mainMenuBarButton = document.getElementById(BUTTON_ID);
            let menubar = document.getElementById("main-menubar");
            if (!mainMenuBarButton || !menubar) return;
    
            setButtonAttributes(mainMenuBarButton);
    
            let menupopup = document.getElementById(POPUP_ID);
            if (!menupopup) {
                menupopup = document.createXULElement("menupopup");
                menupopup.setAttribute("id", POPUP_ID);
                menupopup.setAttribute("position", "after_start");
            }
    
            if (menupopup.parentNode !== mainMenuBarButton) {
                mainMenuBarButton.append(menupopup);
            }
            menupopup.removeAttribute("onpopupshowing");
            menupopup.removeAttribute("onpopuphiding");
    
            moveMenubarMenus(menubar, menupopup);
            installPopupHandlers(mainMenuBarButton, menupopup);
        }
    
        function setButtonAttributes(toolbaritem) {
            let label = Services.locale.appLocaleAsBCP47.includes("zh")
                ? "Hauptmenü"
                : "Menüleiste";
            let props = {
                id: BUTTON_ID,
                class: "toolbarbutton-1 chromeclass-toolbar-additional",
                removable: false,
                label,
                tooltiptext: label,
                style: 'list-style-image: url("chrome://global/skin/icons/more.svg");',
                type: "menu",
            };
            for (let p in props) {
                toolbaritem.setAttribute(p, props[p]);
            }
            toolbaritem.removeAttribute("popup");
        }
    
        function moveMenubarMenus(menubar, menupopup) {
            let menus = Array.from(menubar.childNodes).filter(node => node.nodeName === "menu");
            for (let menu of menus) {
                normalizeTopLevelMenu(menu);
                menupopup.append(menu);
            }
        }
    
        function normalizeTopLevelMenu(menu) {
            menu.removeAttribute("class");
    
            let menutxt = menu.firstChild;
            if (!menutxt?.classList?.contains("menubar-text")) return;
    
            menutxt.classList.remove("menubar-text");
            menutxt.classList.add("menu-text");
            menutxt.setAttribute("flex", "1");
    
            for (let child of Array.from(menu.children)) {
                if (
                    child.classList?.contains("menu-iconic-left") ||
                    child.classList?.contains("menu-icon")
                ) {
                    child.remove();
                }
            }
    
            if (!menutxt.nextElementSibling?.classList?.contains("menu-accel-container")) {
                menutxt.after(MozXULElement.parseXULToFragment(`
    <hbox class="menu-accel-container" anonid="accel" aria-hidden="true">
        <label class="menu-iconic-accel"/>
    </hbox>
    <hbox align="center" class="menu-right" aria-hidden="true">
        <image/>
    </hbox>
                `));
            }
        }
    
        function installPopupHandlers(mainMenuBarButton, menupopup) {
            if (menupopup._menubarReplaceWithButtonInstalled) return;
            menupopup._menubarReplaceWithButtonInstalled = true;
    
            mainMenuBarButton.addEventListener("dragover", () => {
                mainMenuBarButton.openMenu(true);
            });
    
            mainMenuBarButton.addEventListener("dragleave", event => {
                if (event.relatedTarget && !event.relatedTarget.closest("menupopup")) {
                    mainMenuBarButton.openMenu(false);
                }
            });
    
            window.addEventListener(
                "keydown",
                event => {
                    if (
                        event.getModifierState("Shift") ||
                        event.getModifierState("Control") ||
                        event.getModifierState("Meta") ||
                        (event.key !== "Alt" && event.key !== "F10")
                    ) {
                        return;
                    }
    
                    event.stopPropagation();
                    event.preventDefault();
                    if (event.repeat) return;
    
                    if (menupopup.state === "open") {
                        mainMenuBarButton.openMenu(false);
                    } else {
                        mainMenuBarButton.openMenu(true);
                    }
                },
                true
            );
    
            menupopup.addEventListener("popupshowing", function (event) {
                if (event.target === menupopup) {
                    mainMenuBarButton.setAttribute("open", "true");
                }
    
                if (AppConstants.platform != "macosx") {
                    if (event.target.parentNode?.parentNode == this) {
                        this.setAttribute(
                            "openedwithkey",
                            event.target.parentNode.openedWithKey
                        );
                    }
                }
    
                handlePopupShowing(event);
            });
    
            menupopup.addEventListener("popuphiding", event => {
                if (event.target === menupopup) {
                    mainMenuBarButton.removeAttribute("open");
                }
            });
    
            menupopup.addEventListener("command", handleCommand);
    
            document
                .getElementById("menu_EditPopup")
                ?.addEventListener("popuphidden", () => {
                    updateEditUIVisibility();
                });
        }
    
        function handleCommand(event) {
            switch (event.target.id) {
                case "menu_preferences":
                case "menu_settings":
                    openPreferences(undefined);
                    break;
    
                case "menu_pageStyleNoStyle":
                    gPageStyleMenu.disableStyle();
                    break;
                case "menu_pageStylePersistentOnly":
                    gPageStyleMenu.switchStyleSheet(null);
                    break;
                case "repair-text-encoding":
                    BrowserCommands.forceEncodingDetection();
                    break;
                case "enterFullScreenItem":
                case "exitFullScreenItem":
                    BrowserCommands.fullScreen();
                    break;
                case "documentDirection-swap":
                    gBrowser.selectedBrowser.sendMessageToActor(
                        "SwitchDocumentDirection",
                        {},
                        "SwitchDocumentDirection",
                        "roots"
                    );
                    break;
    
                case "sync-tabs-menuitem":
                    gSync.openSyncedTabsPanel();
                    break;
                case "hiddenTabsMenu":
                    gTabsPanel.showHiddenTabsPanel(event, "hidden-tabs-menuitem");
                    break;
                case "sync-setup":
                case "sync-enable":
                case "sync-unverifieditem":
                    gSync.openPrefs("menubar");
                    break;
                case "sync-syncnowitem":
                    gSync.doSync(event);
                    break;
                case "sync-reauthitem":
                    gSync.openSignInAgainPage("menubar");
                    break;
                case "menu_openFirefoxView":
                    FirefoxViewHandler.openTab();
                    break;
                case "hiddenUndoCloseWindow":
                    SessionWindowUI.undoCloseWindow(0);
                    break;
    
                case "menu_openHelp":
                    openHelpLink("firefox-help");
                    break;
                case "menu_layout_debugger":
                    toOpenWindowByType(
                        "mozapp:layoutdebug",
                        "chrome://layoutdebug/content/layoutdebug.xhtml"
                    );
                    break;
                case "feedbackPage":
                    openFeedbackPage();
                    break;
                case "helpSafeMode":
                    safeModeRestart();
                    break;
                case "troubleShooting":
                    openTroubleshootingPage();
                    break;
                case "menu_HelpPopup_reportPhishingtoolmenu":
                    openUILink(gSafeBrowsing.getReportURL("Phish"), event, {
                        triggeringPrincipal:
                            Services.scriptSecurityManager.createNullPrincipal({}),
                    });
                    break;
                case "menu_HelpPopup_reportPhishingErrortoolmenu":
                    gSafeBrowsing.reportFalseDeceptiveSite();
                    break;
                case "helpSwitchDevice":
                    openSwitchingDevicesPage();
                    break;
                case "aboutName":
                    openAboutDialog();
                    break;
                case "helpPolicySupport":
                    openTrustedLinkIn(Services.policies.getSupportMenu().URL.href, "tab");
                    break;
    
                case "menu_setAsDefault":
                    if (AppConstants.platform == "macosx") {
                        Glean.browserApplicationmenu.setAsDefault.record();
                        ShellService.setAsDefault().catch(async _ => {});
                    }
                    break;
            }
        }
    
        function handlePopupShowing(event) {
            switch (event.target.id) {
                case "menu_FilePopup":
                    gFileMenu.onPopupShowing(event);
                    break;
                case "menu_newUserContextPopup":
                    createUserContextMenu(event);
                    break;
                case "menu_EditPopup":
                    updateEditUIVisibility();
                    break;
                case "view-menu-popup":
                    ToolbarContextMenu.onViewToolbarsPopupShowing(event);
                    break;
                case "pageStyleMenuPopup":
                    gPageStyleMenu.fillPopup(event.target);
                    break;
                case "historyMenuPopup":
                    if (!event.target.parentNode._placesView) {
                        new HistoryMenu(event);
                    }
                    window.AIWindow?.appMenu?.(event, window);
                    break;
                case "historyUndoPopup":
                    document
                        .getElementById("history-menu")
                        ._placesView.populateUndoSubmenu();
                    break;
                case "historyUndoWindowPopup":
                    document
                        .getElementById("history-menu")
                        ._placesView.populateUndoWindowSubmenu();
                    break;
                case "bookmarksMenuPopup":
                    BookmarkingUI.onMainMenuPopupShowing(event);
                    if (!event.target.parentNode._placesView) {
                        new PlacesMenu(
                            event,
                            `place:parent=${PlacesUtils.bookmarks.menuGuid}`
                        );
                    }
                    break;
                case "bookmarksToolbarFolderPopup":
                    if (!event.target.parentNode._placesView) {
                        new PlacesMenu(
                            event,
                            `place:parent=${PlacesUtils.bookmarks.toolbarGuid}`
                        );
                    }
                    break;
                case "otherBookmarksFolderPopup":
                    if (!event.target.parentNode._placesView) {
                        new PlacesMenu(
                            event,
                            `place:parent=${PlacesUtils.bookmarks.unfiledGuid}`
                        );
                    }
                    break;
                case "mobileBookmarksFolderPopup":
                    if (!event.target.parentNode._placesView) {
                        new PlacesMenu(
                            event,
                            `place:parent=${PlacesUtils.bookmarks.mobileGuid}`
                        );
                    }
                    break;
                case "menu_HelpPopup":
                    buildHelpMenu();
                    break;
                case "menu_ProfilesPopup":
                    gProfiles.onPopupShowing(event);
                    break;
            }
        }
    })();
    Alles anzeigen

    Quelle: https://github.com/benzBrake/Fire…ithButton.uc.js

    Mfg.
    Endor

  • In memoriam

    • Endor
    • 9. Juli 2026 um 19:22

    R.I.P.

  • BackupProfile.uc.js - div. Fragen dazu

    • Endor
    • 8. Juli 2026 um 08:19

    Danke lenny2.
    Mfg.
    Endor

  • BackupProfile.uc.js - div. Fragen dazu

    • Endor
    • 8. Juli 2026 um 07:56
    Zitat von FuchsFan

    Und auch hiermit profilePath: "C:\\Users\\Old Man\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\ooaxewl1.Reserve-Profil 2",

    Das war die Lösung. Habe meinen Profilpfad nun auch ganz angegeben und damit geht es.

    Eine Frage noch: Im ersten Backup Ordner erstellt das Script keine Zip Datei, kopiert nur
    die Dateien rein.
    Im zweiten Backup Ordner wird eine Zip Datei erstellt. Ist das so gewollt?

    Vielen Dank.
    Mfg.
    Endor

  • BackupProfile.uc.js - div. Fragen dazu

    • Endor
    • 7. Juli 2026 um 20:10

    Hallo FuchsFan.
    Habe Dein Scripte getestet. Prima Sache. Beide sind gut.
    Aber wenn die Profilbezeichnung ein Leerzeichen enthält funktioniert es nicht.
    zbs. Firefox 152 dann kommt nur die Meldung :

    ❌ Fehler: Profilordner existiert nicht: C:\Users\xxxx\AppData\Roaming\Mozilla\Firefox\Profiles\Firefox 152

    Lässt sich das eventuell noch beheben?

    Mfg.
    Endor

  • In memoriam

    • Endor
    • 4. Juli 2026 um 07:28

    R.I.P.

  • Wetterfuchsbutton Script für userChrome.js

    • Endor
    • 29. Juni 2026 um 09:25

    Hallo FuchsFan!

    Mit deiner ersten Version genau das selbe Problem wie vom Mira_Belle
    beschrieben. Die obige teste ich noch. Vielen Dank.

    Mira_Belle

    Ich habe jetzt wie Du geschrieben hast nur diese beiden Absätze entsprechend eingefügt:

    JavaScript
        // Klick außerhalb: Panel schließen
        document.addEventListener('click', (event) => {
          if (panel.state === "open" && !panel.contains(event.target) && event.target.id !== id) {
            panel.hidePopup();
          }
        });

    und:

    JavaScript
      // ESC-Taste zum Schließen des Wetterfuchs-Panels
      document.addEventListener('keydown', function(event) {
        if (event.key === 'Escape' || event.keyCode === 27) {
          const panel = document.getElementById('wetterfuchs-panel');
          if (panel) panel.hidePopup();
        }
      });

    Funktioniert prima.
    Vielen Dank.
    Mfg.
    Endor

  • Wetterfuchsbutton Script für userChrome.js

    • Endor
    • 28. Juni 2026 um 21:28

    Mittelklick ins Paneel schließt es, öffnet aber zugleich einen neuen Tab mit Inhalt des Paneels.

  • Wetterfuchsbutton Script für userChrome.js

    • Endor
    • 28. Juni 2026 um 21:13

    Ich verwende die aktuelle von Mira_Belle von hier:

    Beitrag

    RE: Wetterfuchsbutton Script für userChrome.js

    Sorry, ich konnte nicht anders!
    Ich finde die Aufteilung so im Skript einfach besser
    und Symbole erst zu generieren, bzw. zu laden finde ich auch nicht so dolle.

    Also ist DAS dabei herausgekommen:

    (Quelltext, 315 Zeilen)


    Das Skript funktioniert auch ohne security.allow_unsafe_dangerous_privileged_evil_eval auf true zu setzen.
    Betätigen des Buttons mit linkem Doppelklick, Mittelklick und Linksklick öffnet ein Panel (Popup) mit entsprechenden Seiten.
    Das Menü, bzw. das Öffnen der entsprechenden Seiten…
    Mira_Belle
    7. Februar 2026 um 17:22

    da gibt es nur sowas:

    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();
        });
    
        panel.addEventListener('mousedown', event => {
          if (event.button == 1) {
            openUrlFromPanel();
          }
        });
    Alles anzeigen

    Mfg.
    Endor

  • Wetterfuchsbutton Script für userChrome.js

    • Endor
    • 28. Juni 2026 um 19:42

    Hallo an die Wetterfuchs Front.
    Nur eine kurze Frage, wenn ich beim Wetterfuchs ein Fenster öffne
    lässt es sich nicht mehr schließen. Ist das bei euch au so.
    Muss Firefox neu starten. Egal ob aus Menü oder klick auf Schaltfläche.

    Mfg.
    Endor

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

    • Endor
    • 28. Juni 2026 um 08:10

    Hallo bege.
    Kann ich dir leider auch nicht sagen.
    Der Autor hat diese Version, damit funktionieren oben die drei
    Schaltflächen im Popupmenü wieder, so hochgeladen.
    Ich habe sie nur auf deutsch übersetzt.

    Quelle: https://u6.getuploader.com/script/

    Die Version aus meinem Repo entspricht dieser hier:
    ExtensionOptionsMenu330.uc.js

    es geht um diesen Absatz hier:

    Code
    		let sb = window.userChrome_js?.sb;
    			if (!sb) {
    				sb = Cu.Sandbox(window, {
    					sandboxPrototype: window,
    					sameZoneAs: window,
    					freezeBuiltins: false,
    				});
    				Cu.evalInSandbox(`
    					Function.prototype.toSource = window.Function.prototype.toSource;
    					Object.defineProperty(Function.prototype, 'toSource', {enumerable : false})
    					Object.prototype.toSource = window.Object.prototype.toSource;
    					Object.defineProperty(Object.prototype, 'toSource', {enumerable : false})
    					Array.prototype.toSource = window.Array.prototype.toSource;
    					Object.defineProperty(Array.prototype, 'toSource', {enumerable : false})
    				`, sb);
    				
    				window.addEventListener('unload', () => {
    					setTimeout(() => {
    						Cu.nukeSandbox(sb);
    					}, 0);
    				}, { once: true });
    			}
    			this.sb = sb;
    Alles anzeigen

    Vielleicht kann ein Script Kundiger etwas dazu sagen.

    Mfg.
    Endor

  • Firefox View

    • Endor
    • 25. Juni 2026 um 14:37

    Da ich in diesem Profil bei keinem Gerät angemeldet bin, ist es nochmals anders.
    Aber nun habe ich es hier am laufen.
    Mfg.
    Endor

  • Firefox View

    • Endor
    • 25. Juni 2026 um 14:35

    Hat sich erledigt.
    Habe beides nun hinbekommen.
    Vielen Dank nochmals.

    Mfg.
    Endor

  • Firefox View

    • Endor
    • 25. Juni 2026 um 14:30

    Hallo grisu2099 .
    Funktioniert soweit prima.
    Nur der letzte Eintrag mit Untermenü da tut sich nichts.
    An Mobilgerät senden und Untermenü tut sich nichts.
    :/

    Mfg.
    Endor

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