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?
Beiträge von lenny2
-
-
-
-
-
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!
JavaScript
Alles anzeigen// ==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);}
-
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 TopCodejavascript: ((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
Codejavascript:((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
Code/* 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.
-
In v136.0a1 funktioniert das folgende CSS nicht mehr richtig (in v134.0.1 funktionierte es sehr gut). Aris-t2 hat die Originalquelle aber sie funktioniert überhaupt nicht.
CSS
Alles anzeigen/* userChrome.css */ /* Scrollbar_Lesezeichenordnern.css */ link[href$="arrowscrollbox.css"] ~ scrollbox { margin-block: 0 !important; } link[href$="arrowscrollbox.css"] ~ scrollbox[orient="vertical"] { overflow-y: auto !important; } .menupopup-arrowscrollbox { --scroll_status: collapse; } link[href$="arrowscrollbox.css"] ~ :is(#scrollbutton-up, #scrollbutton-down) { visibility: var(--scroll_status, visible); } /* Entfernt die zusätzliche Leerzeile am unteren Rand */ scrollbox[flex="1"][part="scrollbox"] { padding-top: 0 !important; padding-bottom: 0 !important; }
-
.exe?size=16",
Wow, super!
-
Arbeitet in Nightly
Code
Alles anzeigen// eXt-App-Launch.uc.js // Create multiple movable buttons // 1 - Notepad Start try { CustomizableUI.createWidget({ id: "add-notepad-app", label: "Notepad", tooltiptext: "Notepad Start", defaultArea: CustomizableUI.AREA_NAVBAR, onCreated: btn => btn.image = "file:///C:/Program Files/Firefox/Profiles/icons/notepad.png", onCommand: function(event) { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath("C:\\Windows\\System32\\notepad.exe"); if (file.exists()) file.launch(); } }); } catch(e) {} // 2 - Program Files Folder Open try { CustomizableUI.createWidget({ id: "add-openfolder1-app", label: "Program Files", tooltiptext: "Open Program Files Folder", defaultArea: CustomizableUI.AREA_NAVBAR, onCreated: btn => btn.image = "file:///C:/Program Files/Firefox/Profiles/icons/folder.png", onCommand: function(event) { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath("C:\\Program Files"); if (file.exists()) file.launch(); } }); } catch(e) {} // 3 - Next button (input another id:)
-
Der Punkt "Alle Tabs wieder öffnen" erscheint nicht oben im Menü, sondern unten.
Hier noch einmal "meine" Version.Danke, kein Problem
Version des Appmenüs
Dieses Appmenu.uc.js mit diesen Korrekturen
Schema F:
Danke!