Ersetze mal Zeile 3 durch:
und Zeile 22 durch:
Danke, damit ist das Problem gelöst 
 ![]()
Ersetze mal Zeile 3 durch:
und Zeile 22 durch:
Danke, damit ist das Problem gelöst 
 ![]()
Dieses Skript funktioniert nicht mehr in v136.0a1 Nightly. Es könnte mit jsm und mjs zu tun haben. Vielen Dank für Ihre Hilfe!
// copyURL.js
// Button in the url-bar for “copy url-bar link”
(async (url, pa = ChromeUtils.import(url).PageActions) => pa.addAction(new pa.Action({
   title: "Copy link",
   tooltip: "Copy link",
   iconURL: "chrome://global/skin/icons/link.svg",
   id: "copyURL",
   pinnedToUrlbar: true,
   onCommand(e) {
       var MozXULElement = {insertFTLIfNeeded() {}};
       var document = {l10n: {setAttributes: msg => msg.textContent = "Copy to clipboard!"}};
       var show = eval(`(function ${e.view.ConfirmationHint.show})`);
       var helper = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper);
       (this.onCommand = e => {
           var win = e.view;
           var uri = win.gBrowser.selectedBrowser.currentURI;
           helper.copyString(win.gURLBar.makeURIReadable(uri).displaySpec);
           var anchor = win.BrowserPageActions.panelAnchorNodeForAction(this, e);
           show.call(win.ConfirmationHint, anchor, "", {event: e, hideArrow: true});
       })(e);
   }
})))("resource:///modules/PageActions.jsm");
	
			Alles anzeigen
	Ich glaube ich habe es hinbekommen. Sieh folgende Skriptversion:
Superb! Alle Optionen funktionieren. v136.0a1, v134.0.2. Danke ![]()
![]()
Sie können den globalen Stil tooltips aller Toolbar-Buttons, Erweiterungs- und Skript-Buttons, Lesezeichen-Links, Seiten-Kontext-Links, vertikal Toolbar Aris-t2 Buttons... wenn Sie zusätzlich dieses Skript verwenden
	milupo Leider hat es nicht geklappt 
  Was ist, wenn ich die Änderungen aus Beitrag #2 verwende und den Code der Button selbst entferne? Es wird dann ein Skript ohne Button sein, die Funktionalität der Button selbst ist für mich unnötig. Wäre das nicht einfacher?
Dieses Skript funktioniert nicht mehr in v136.0a1 Nightly. Es könnte mit jsm und mjs zu tun haben. Vielen Dank für Ihre Hilfe!
// ==UserScript==
// tooltips_with_URL.uc.js
// @description      Displays target URL in tooltip, when hovering over a link
// Button has “tooltips on”/“tooltips off” positions
// ==/UserScript==
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); // by default is ON
    },
    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.setAttribute("onmouseenter", "owner.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.import("resource://gre/modules/TooltipTextProvider.jsm").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 = Cu.import("resource:///modules/UrlbarInput.jsm", {}).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
	Vertikale Toolbar von Aris-t2 funktioniert im heutigen Nightly (24. Jan) nicht mehr ![]()
v136.0a1 aktualisiert und mein Scrollbar in Lesezeichenleisten-Ordnern funktioniert wieder. Problem gelöst.
Du musst das testen ob die Werte bei dir auch so passen
Danke, es hat funktioniert ![]()
Hallo, wie kann man die Menüleiste mit CSS von Platz 5 auf Platz 2 oder 3 verschieben? ID = ContextUndoList (UndoListInTabmenuToo.uc.js). Danke.
Bookmarklets zum Scroll auf der Seite nach oben und unten bis zum Ende. Der erste Klick scroll die Seite von der aktuellen Position bis zum Ende, der zweite Klick bringt die Seite wieder an die vorherige Position. Die Bookmarklets müssen Top und Bottom genannt werden.
URL für Top
javascript: ((t, sy) => {
   if (sy === 0) {
       window.scrollTo({top: window.s_ud, behavior: t});
       s_ud = 0;
   } else {
       s_ud = sy;
       window.scrollTo({top: 0, behavior: t});
   }
})("smooth", window.scrollY)
	
	URL für Bottom
javascript:((t, smy, sy) => {
   if (Math.abs(smy - sy) < 2) {
       if (window.s_du === undefined) return;
       window.scrollTo({top: s_du, behavior: t});
       s_du = smy;
   } else {
       s_du = sy;
       window.scrollTo({top: smy, behavior: t});
   }
})("smooth", window.scrollMaxY, window.scrollY)
	
	userChrome.css
/* Boormarklets "Top" and "Bottom" */
toolbarbutton.bookmark-item[scheme="javascript"]:not([container]) {
 &[label="Top"] {
   content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAT0lEQVQ4je3Quw4AEAxG4b+e3OitaxEJejUZNLFIz5cAGMNAZaBZO17M4+SQLc4hShxDnNhGgrGMJOMVuYwnQspzWLon4Ngv5q8G5gMvAB00SYnQZbsYoQAAAABJRU5ErkJggg==");
 }
 &[label="Bottom"] {
   content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAWElEQVQ4je3OsQ6AMAiE4R9f2pG++TmZNEgrbA6SsNC7LzWSESi7G1i8HVmwMz/wCUBwCjTvKhxzAr8fHkhhPeodxLMfVpG8XET25RekVl4gvfKEDMHYZS5D631YXYCxXQAAAABJRU5ErkJggg==");
 }
}
	
		Speravir  Danke für das Angebot der Hilfe. Die Meinung des Benutzers ist nur ein Wunsch. Möge Alice0775 mehr Zeit haben, um Bugs zu beheben.
Nur zur Information, beachten Sie, wie viel informativer die Erweiterung Dropdown-Menü (oben) ist im Vergleich zu dem Skript (unten).
    
    
        
Teste bitte nur mit dem Code, und deaktivier mal alle anderen Codes und Skripte.
Tested, das Ergebnis ist unbefriedigend.
Ich hatte weiter oben geschrieben, dass jemand Alice informieren sollte. Der jemand war jetzt ich:
Sie haben genau das Richtige getan, vielen Dank.
Die optimale Variante von UndoListInTabmenuToo.uc.js sieht für mich so aus.
- Der erste Punkt im Untermenü sollte „Open the last closed tab“ sein (ich glaube, in einigen Varianten des Skripts ist es so, aber ich bin schon verwirrt).
- In -- config -- sollte es möglich sein, „Alle Tabs wieder öffnen“ zu deaktivieren, oder es sollte bekannte Codezeilen geben, um sie manuell zu entfernen.
- Wenn man auf „Alle Tabs wieder öffnen“ klickt, werden alle Tabs auf einmal geladen, nicht im „Lazy Load“-Modus, und das verursacht Probleme.
- Die Breite der Dropdown-Liste der geschlossenen Tabs muss vergrößert werden, sie ist 3-4cm kleiner als bei der „Undo Cloae Tab 8.0.0“-Erweiterung und das ist unbequem.
Hat jemand eine Idee, wegen des Kontextmenüs?
Wenn der bereits Code // „Liste Kürzlich geschlossener Fenster“ entfernt wird, bleibt der Eintrag „Geschlossener Tabs“ im Kontextmenü der Seite mit einer leeren Tabs aktiv.
Funktioniert hier einwandfrei
Der größte Nachteil ist, dass man nicht ganz nach oben scrollen kann. Aber in v134, v128... funktionierte es perfekt.
Teste bitte mal:
Scrollen Sie mit der mittleren Maustaste. Nach unten so schlecht, ohne Glättung. Up ist schlimmer, 10-20 Registerkarten sind nicht den ganzen Weg nach oben gescrollt.