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

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

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 13:42
    Zitat von Horstmann

    statt [image] image

    Macht keinen Unterschied.

    Aber das passt hier jetzt ja.
    Hatte oben ja nochmals geändert.

    Vielen Dank für Deine Mühe.
    Mfg.
    Endor

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 13:17

    Wenn ich es so mache:

    CSS
    	#mainPopupSet menupopup[needsgutter] > menuitem:not([type="checkbox"], [class="menuitem-iconic"], 
    	[type="radio"], [checked], [image]) > .menu-icon {display: none !important;	}

    dann funktioniert es auch bei der vor und zurück Schaltfläche.
    [needsgutter] braucht es. Ohne tut sich nichts.

    Mfg.
    Endor

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 12:34

    Nein leider nicht, auch ohne [needsgutter] nichts.

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 12:09

    Du hast recht es liegt nicht an deinem, sondern an diesem:

    CSS
    	@media (-moz-platform: windows) {
    	menupopup[needsgutter] > menuitem:not([type="checkbox"], [class="menuitem-iconic"] ,[type="radio"], [checked]) > .menu-icon {display: none !important;}
    	}

    Dein letzter passt irgendwie besser.
    Hast Du für obigen eine Idee?

    Mfg.
    Endor

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 11:47

    Leider nein.

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 22. Februar 2026 um 10:52
    Zitat von Horstmann

    Woll'n wir's hoffen. ;)

    Habe leider doch noch ein Problem entdeckt:

    Kontextmenü bei Vor und Zurückpfeil in Navigationsleiste sind die Symbole weg.

    Mfg.
    Endor

  • Symbole in den Kontextmenüs [ Update ]

    • Endor
    • 20. Februar 2026 um 20:20

    Prima. Nun ist es aber wirklich perfekt.
    Vielen Dank für Deine Mühe.

    Mfg.
    Endor

Unterstütze uns!

Jährlich (2026)

51,8 %

51,8% (401,55 von 775 EUR)

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