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

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • Endor
    • 21. März 2026 um 15:01

    Hallo FuchsFan

    Habe alles hoch geladen:

    userChrome.js/Multirowtabs/Firefox 148 at master · Endor8/userChrome.js
    Skripte für die Firefox-Erweiterung userChromeJS. Contribute to Endor8/userChrome.js development by creating an account on GitHub.
    github.com

    Readme habe ich auch einen kleinen gemacht.
    Habe mir Dein Bild von oben ausgeliehen.
    Wenn du was ändern willst oder mehr Info und Bilder immer gerne.
    Einfach PN am mich.
    Mfg.
    Endor

  • Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    • Endor
    • 20. März 2026 um 10:28

    Hallo FuchsFan.
    Habe Dein Script jetzt ausgiebig getestet, und bin begeistert.
    :thumbup::thumbup::thumbup:

    Funktioniert hier soweit prima.
    Mit und ohne Deinen CSS Code.
    Vielen Dank.
    Soll ich das bei mir hoch laden?
    Mfg.
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 20. März 2026 um 10:26

    Hallo schlingo und ostsee .
    Alles alles Gute zum Geburtstag.
    Vor allem viel Gesundheit, Glück und Wohlergehen wünsche ich euch
    von ganzen Herzen.
    Viele Grüße
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 18. März 2026 um 19:21

    Hallo Sören Hentzschel .
    Alles alles Gute zum Geburtstag.
    Vor allem viel Gesundheit, aber auch viel Glück und Wohlergehen
    wünsche ich Dir von ganzen Herzen.
    Mfg.
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 10. März 2026 um 11:17

    Hallo Büssen und Elena M .
    Vielen vielen Dank für eure Glückwünsche zu meinem Geburtstag.
    Toll, dass ihr an mich gedacht habt.

    BarbaraZ- .
    Alles alles Gute zum Geburtstag.
    Vor allem Viel Gesundheit, Glück und Wohlergehen
    wünsche ich Dir von ganzen Herzen.
    Mfg.
    Endor

  • Der Glückwunsch-Thread

    • Endor
    • 7. März 2026 um 19:52

    Hallo zusammen. Vielen vielen Dank für die ganzen Glückwünsche zu meinem Geburtstag. Danke, dass ihr an mich gedacht habt. Freut mich wirklich sehr. Viele Grüße

    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 3. März 2026 um 19:14

    Hallo FuchsFan

    Vielen Dank!!!
    Funktioniert bestens.
    Mfg.
    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 3. März 2026 um 14:44
    Zitat von lenny2

    Es hat einen Schaltfläche, und er funktioniert.

    Ja Sie haben völlig recht. War mir nicht aufgefallen.
    Vielen Dank für den Hinweis.
    Mfg.
    Endor

  • Bei der Suche lande ich immer bei Yahoo

    • Endor
    • 3. März 2026 um 13:36

    Terius

    Du hast falsch verstanden.
    Du sollst about:support in die Adressleiste eingeben und
    mit Entertaste auf Tastatur bestätigen.
    Es öffnet sich eine neue Seite mit Informationen.
    Da machst Du einen klick auf Text in die Zwischenablage kopieren
    dann hier in einem neuen Betrag einfügen.
    Dazu im neuen Beitrag klick hier:

    Dann im Beitrag im hellgrauen Bereich einfügen.

    Mfg.
    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 3. März 2026 um 13:26

    Hallo lenny2

    Ich habe hier eine Alternatives Script:

    JavaScript
    // ==UserScript==
    // @name           URL Tooltip Toggle (149+)
    // @description    Shows link target URL near mouse cursor (multiline, no truncation)
    // ==/UserScript==
    
    (function () {
    
    if (!window.gBrowser || !window.CustomizableUI) return;
    
    const { Services } = globalThis;
    const PREF = "urltooltip.enabled";
    
    let originalSetOverLink;
    let tooltip;
    let lastMouseX = 0;
    let lastMouseY = 0;
    
    /* ================= MOUSE TRACKING ================= */
    
    window.addEventListener("mousemove", e => {
        lastMouseX = e.screenX;
        lastMouseY = e.screenY;
    }, true);
    
    /* ================= TOOLTIP ================= */
    
    function createTooltip() {
        if (tooltip) return;
    
        tooltip = document.createXULElement("tooltip");
        tooltip.id = "ucjs-url-tooltip";
        tooltip.setAttribute("noautohide", "true");
    
        // Multiline + wrapping
        tooltip.style.maxWidth = "600px";
        tooltip.style.whiteSpace = "pre-wrap";
        tooltip.style.wordBreak = "break-word";
    
        document.documentElement.appendChild(tooltip);
    }
    
    function showTooltip(url) {
        if (!tooltip) createTooltip();
    
        url = cleanURL(url);
        if (!url) return;
    
        tooltip.label = url;
    
        tooltip.openPopupAtScreen(
            lastMouseX + 0,
            lastMouseY + 2,
            false
        );
    }
    
    function hideTooltip() {
        if (tooltip && tooltip.state !== "closed")
            tooltip.hidePopup();
    }
    
    /* ================= PATCH ================= */
    
    function patch() {
        if (originalSetOverLink) return;
    
        originalSetOverLink = XULBrowserWindow.setOverLink;
    
        XULBrowserWindow.setOverLink = function (url, anchorElt) {
    
            originalSetOverLink.apply(this, arguments);
    
            if (!Services.prefs.getBoolPref(PREF, true))
                return;
    
            if (!url) {
                hideTooltip();
                return;
            }
    
            showTooltip(url);
        };
    }
    
    function restore() {
        if (!originalSetOverLink) return;
    
        XULBrowserWindow.setOverLink = originalSetOverLink;
        originalSetOverLink = null;
    
        hideTooltip();
    }
    
    /* ================= URL CLEAN ================= */
    
    function cleanURL(url) {
    
        if (/^(javascript|data|mailto|about):/i.test(url))
            return "";
    
        try {
            const { UrlbarUtils } =
                ChromeUtils.importESModule(
                    "resource:///modules/UrlbarUtils.sys.mjs"
                );
            url = UrlbarUtils.stripPrefixAndTrim(url);
        } catch {}
    
        return url;
    }
    
    /* ================= BUTTON ================= */
    
    CustomizableUI.createWidget({
        id: "urltooltip-toggle",
        type: "button",
        defaultArea: CustomizableUI.AREA_NAVBAR,
        label: "URL Tooltip",
        tooltiptext: "Toggle link URL tooltips",
    
        onCreated(button) {
    
            updateButton(button);
    
            button.addEventListener("command", () => {
    
                let state = !Services.prefs.getBoolPref(PREF, true);
                Services.prefs.setBoolPref(PREF, state);
    
                updateButton(button);
    
                state ? patch() : restore();
            });
    
            if (Services.prefs.getBoolPref(PREF, true))
                patch();
        }
    });
    
    function updateButton(btn) {
        let state = Services.prefs.getBoolPref(PREF, true);
        btn.style.opacity = state ? "1" : "0.5";
        btn.tooltipText = "URL Tooltip: " + (state ? "ON" : "OFF");
    }
    
    /* ================= INIT ================= */
    
    if (Services.prefs.getBoolPref(PREF, true))
        patch();
    
    })();
    Alles anzeigen

    Das funktioniert hier in Firefox 149 und 150. Ob es auch im aktuellen 148 funktioniert
    müsste ich noch testen. Das hat aber keine Schaltfläche zum aktivieren oder deaktivieren.
    Rest wie gewohnt.
    Mfg.
    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 2. März 2026 um 19:40
    Zitat von lenny2

    aber es hat nichts genützt.

    Kann und muss ich leider bestätigen.
    In Firefox 149 beta2 funktioniert es nicht.

    Mfg.
    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 2. März 2026 um 15:11

    Habe Deine Version hier in 149beta2 getestet da funktioniert sie nicht.
    Schaltfläche ist da aber es wird keine URL als Popup angezeigt.

    2002Andreas.
    Bei mir war beim ersten mal die Schaltfläche im Anpassenfenster.
    Musste die erst auf die Symbolleiste ziehen.

    Mfg.
    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 2. März 2026 um 14:53

    Hallo milupo.
    Und wie steht die Einstellung bei Dir:

    security.browser_xhtml_csp.enabled

    true oder false?

    Standard ist true und so ist auch hier bei mir.

    Mfg.
    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 2. März 2026 um 13:57

    Schade. Aber ich vermute mal, da ich den Schalter in About:config:

    security.allow_unsafe_dangerous_privileged_evil_eval

    auf true habe, funktioniert es hier noch in Firefox 148.
    Weil hier funktionieren die Schaltflächen und die Einblendung des Tototipps.

    In Firefox 149 beta2 funktioniert es auch so nicht mehr. Schade.
    Vielleicht kann da jemand anderes weiter helfen.
    Mfg.
    Endor

  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • Endor
    • 2. März 2026 um 12:00

    Hallo lenny2

    Könntest Du bitte mal diese Version testen:

    JavaScript
    // ==UserScript==
    // 
    // @description      Displays target URL in tooltip, when hovering over a link
    // Button has “tooltips on”/“tooltips off” positions
    // ==/UserScript==
    (function() {
    	if (!window.gBrowser){
    			return;
    	}
    	
    	try {
    	CustomizableUI.createWidget(({
        label: "Links in pop-up tooltips", localized: false,
        id: "URLTooltip", pref: "URLTooltip.enabled",
        get state() {
            return Services.prefs.getBoolPref(this.pref, true); // Standardmäßig aktiviert
        },
        setIcon(btn, state = this.state) {
            btn.setAttribute("image", "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' style='fill:context-fill rgb(142, 142, 152);'><path d='M9.618 6.721a2.483 2.483 0 0 0-.39-.317l-.735.734A1.486 1.486 0 0 1 8.91 9.55l-2.12 2.122a1.486 1.486 0 0 1-2.122 0 1.486 1.486 0 0 1 0-2.121l.605-.605a3.53 3.53 0 0 1-.206-1.209L3.961 8.843a2.506 2.506 0 0 0 0 3.535 2.506 2.506 0 0 0 3.535 0l2.122-2.121a2.506 2.506 0 0 0 0-3.536z'/><path d='M6.79 9.55c.12.121.25.226.389.317l.734-.734a1.486 1.486 0 0 1-.417-2.411L9.618 4.6a1.486 1.486 0 0 1 2.121 0 1.486 1.486 0 0 1 0 2.121l-.605.605c.137.391.211.798.206 1.209l1.106-1.107a2.506 2.506 0 0 0 0-3.535 2.506 2.506 0 0 0-3.535 0L6.789 6.014a2.506 2.506 0 0 0 0 3.536z'/><circle style='fill:none;stroke:context-fill rgb(142, 142, 152);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round' cx='8' cy='8' r='7.4'/></svg>");
            btn.style.setProperty("fill", `${state ? "color-mix(in srgb, currentColor 20%, #e31b5d)" : ""}`);
        },
        onCreated(btn) {
            this.setIcon(btn), this.btn = btn, btn.owner = this;
            //btn.setAttribute("oncommand", "owner.toggle()");
    			btn.addEventListener('command', () => {
    				this.toggle();						
    		});
           		btn.addEventListener('mouseenter', () => {
    				this.mouseenter();						
    		});
    		
        },
        mouseenter() {
            this.btn.tooltipText = this.label +' – '+ `${this.state ? "enabled" : "disabled"}`;
        },
        toggle() {
            Services.prefs.setBoolPref(this.pref, !this.state);
        },
        observe(s, topic) {
            if (topic.startsWith("q")) return this.destroy();
            var {state} = this;
            for(var {node} of CustomizableUI.getWidget(this.id).instances)
                this.setIcon(node, state);
            state ? this.initTooltip() : this.destroyTooltip();
        },
        init() {
            Services.prefs.addObserver(this.pref, this);
            Services.obs.addObserver(this, "quit-application-granted", false);
            this.state && this.initTooltip();
            delete this.init; return this;
        },
        destroy() {
            Services.prefs.removeObserver(this.pref, this);
            Services.obs.removeObserver(this, "quit-application-granted");
        },
        initTooltip() {
            var url = this.initURL = this.createURL("psInit");
            (this.initTooltip = () => Services.ppmm.loadProcessScript(url, true))();
        },
        destroyTooltip() {
            var url = this.createURL("psDestroy");
            (this.destroyTooltip = () => {
                Services.ppmm.removeDelayedProcessScript(this.initURL);
                Services.ppmm.loadProcessScript(url, false);
            })();
            delete this.createURL;
        },
        createURL: function createURL(meth) {
            var subst = this.id + "-" + meth;
            (createURL.rph || (createURL.rph = Services.io.getProtocolHandler("resource")
                    .QueryInterface(Ci.nsIResProtocolHandler)
            )).setSubstitution(subst, Services.io.newURI("data:text/javascript;charset=utf-8," + encodeURIComponent(
                `(${this[meth]})(ChromeUtils.importESModule("resource://gre/modules/TooltipTextProvider.sys.mjs").TooltipTextProvider.prototype)`
            )));
            delete this[meth]; return "resource://" + subst;
        },
        psInit: proto => {
            if (proto.getTextPlus) return proto.getNodeText = proto.getTextPlus.newGetNodeText;
            //================[ start content ]================
            proto.getTextPlus = node => {
                var href = getHref(node);
                if (!href || href == "#" || skipRe.test(href)) return;
                if (href.startsWith("data:")) return crop(href, 64);
                return crop(decode(href));
            }
            var skipRe = /^(?:javascript|addons):/;
            var getHref = node => {do {
                if (HTMLAnchorElement.isInstance(node) && node.href) return node.href;
            } while (node = node.flattenedTreeParentNode)}
            var crop = (url, max = 128) => url.length <= max
                ? url : url.slice(0, --max) + "\u2026"; // ellipsis
            var decode = url => {
                var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
                var ldu = ChromeUtils.importESModule("moz-src:///browser/components/urlbar/UrlbarInput.sys.mjs", {}).losslessDecodeURI;
                return (decode = url => {try {return ldu(ios.newURI(url));} catch {return url;}})(url);
            }
            //================[ end content ]==================
            var func = proto.getTextPlus.getNodeText = proto.getNodeText;
            proto.getTextPlus.newGetNodeText = proto.getNodeText = function(node, text) {
                var res = func.apply(this, arguments);
                if (!res && !(node?.localName != "browser" && node.ownerGlobal && node.ownerDocument))
                    return false;
                var txt = this.getTextPlus(node), add = "";
                return txt ? text.value = res ? text.value + "\n" + txt + add : txt + add : res;
            }
        },
        psDestroy: proto => {
            proto.getNodeText = proto.getTextPlus.getNodeText;
        }
    }).init())} catch(ex) {Cu.reportError(ex);}
    
    })();
    Alles anzeigen

    Hoffe die funktioniert.

    Mfg.
    Endor

  • Was hört Ihr gerade?

    • Endor
    • 1. März 2026 um 10:53

    In Memoriam:

    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

    • Endor
    • 1. März 2026 um 10:52

    Neil Sedaka ist tot.

    "Oh! Carol"-Sänger Neil Sedaka gestorben
    Durch Hits wie "Oh! Carol", "Calendar Girl" oder "Breaking Up Is Hard to Do" wurde Neil Sedaka in den 1960er-Jahren zum Star. Er war fünfmal für den Grammy…
    www.br.de

    Oh! Carol einer seiner größten Hits.

    R.I.P.

    Mfg.
    Endor

  • 2 Einträge in Kontextmenüs entfernen

    • Endor
    • 25. Februar 2026 um 19:44

    Nur zur Info, der Eintrag wird durch das Script UndoListInTabmenuToo.uc.js
    von Alice eingefügt.

    userChrome.js/140/UndoListInTabmenuToo.uc.js at master · alice0775/userChrome.js
    Contribute to alice0775/userChrome.js development by creating an account on GitHub.
    github.com

    bzw.

    userChrome.js/149/UndoListInTabmenuToo.uc.js at master · alice0775/userChrome.js
    Contribute to alice0775/userChrome.js development by creating an account on GitHub.
    github.com

    Mfg.
    Endor

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 14:42

    Ja habe ich auch hier, aber erst im Firefox 149 wie im Script angegeben.
    Trotzdem danke für den Hinweis.
    Mfg.
    Endor

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 14:25
    Zitat von grisu2099

    ausgegraut (inaktiv)...

    und mit Rechtsklick drauf wird hier auch ein Kontextmenü angezeigt.

Unterstütze uns!

Jährlich (2026)

34 %

34% (263,24 von 775 EUR)

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