Beiträge von lenny2
-
-
2002Andreas Haben Sie den CSS-Code aus Beitrag #5 für v136 angepasst?
-
Ich weiß nicht, in welchem Thread dies gepostet werden könnte. In Firefox v135.0 müssen Sie die Werte von zwei Parametern in about:config auf die Werte von v128.7.0esr oder v134 setzen, um die Darstellung von Schriften zu verbessern.
-
Dieses Skript funktioniert definitiv.
-
-
Page info im Hauptkontextmenü (kompatibel mit Firefox v136.0a1)
JavaScript
Alles anzeigen// Page_Info_in_Context.uc.js (async ( id = "context-viewPageInfo", image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACp0lEQVQ4jV2TPW9cVRCGn3fOuffu9Xo3TnCEkANYQotB2WJpUqWwJSqIUuQPRKKlsAUFpeUmEpXXEv+ACClFitQowmUIMmxASowIkjuQk9jr/fDd7F3fQ7HWdcxI04zmfc47RzPif9G4cXdR0iqy5flL9VYRAoe9rCNpG9nW7v1be2/2qxR+/v0c0vp7C/NrV5euMCkijoYTXucnEALDYcaLwx7DLGsjbTy7d7NbAk7FP12/ttSq1uZ48vyYLA/UZhwg+qMCZ5A6GGVDesODDtLK0x8+69rUh9avX1tqWVzn0dMhWR4A8eDOxzy48xEyEWQcB4O0Tlq73JK5dQBr3Li7+P7C/NpsbY4nf2dTTxKYyhnNG/KGeQfeEVXrRJXqWvP2w0UvafXq0rv8+vz4TCwhJz795s/p62ZlHQkJ4uoFTnqvVj2y5UnwZOP8XNPj75rlTze/3MV5YU4IoQCJS5Bzy3b5rXrraDgBQQEMRgUH/QmNL/4oAXHiiSueJPUkM554JmK2FlGppC1fBBjnBeNJ4HAwQWZEicN7KwFRxeHjaU1mSDCbBIZ9jx0cHXfyyQkvD3NCAHPCnOEid85BUvEkMxGV6jQvzkVk45OOSdp+dTDAOZDpFCCcK3cMnziiiidJp+JaPcZZgZzfNmRbR4MBl2aENE0zIXc2go8cUeKJU0+lGvPhlYh/9kfI3Jbt3r+1N85ftykyUkcJ6Ww2SsCPX7+Nc4aPHY2FiH5vzL8vx+2dzeaeP93Ejfykv+zMtwKzAHzy1V8kaVTOXavFfDAP3f0BP+8cdGS2AWAAz+7d7CKtSL22D11U5MQBqha4GAfeqQYuKOP33/Z59PhFmxBWfvm2cXZMb0bz9sNFma3K+eUkSVs+dozyoiPnt2Vua2ezee6c/wN/E94boB6vcgAAAABJRU5ErkJggg==", subst = `${id.toLowerCase()}-img`, PHandler = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler) ) => { if (location != "chrome://browser/content/browser.xhtml") return; if (!PHandler.hasSubstitution(subst)) PHandler.setSubstitution(subst, Services.io.newURI(image)); var menuitem = document.createXULElement("menuitem"); document.getElementById("context-viewsource").before(menuitem); var hidden = () => { var d = nsContextMenu.contentData, {context, browser} = d; return context.link || d.selectionInfo.text || context.onImage || context.onCanvas || context.onVideo || context.onAudio || context.onTextInput || browser.className.startsWith("webext"); } menuitem.hidden = true; menuitem.render = () => { if (hidden()) return; menuitem.hidden = false; menuitem.id = `${id}`; menuitem.label = "Page Info"; delete menuitem.render; menuitem.className = "menuitem-iconic"; menuitem.style.cssText = `list-style-image:url("resource://${subst}");`; menuitem.addEventListener("command", () => gContextMenu.viewInfo()); menuitem.render(); menuitem.render = () => menuitem.hidden = hidden(); } })();
-
-
-
In dem verlinkten Skript kannst du Zeile 7 entfernen und ersetze Zeile 8 durch folgende Zeile:
Vielen Dank, das Skript funktioniert wieder
-
Dieses Skript saveTo.uc.js funktioniert nicht mehr in v136.0a1 Nightly. Es könnte mit jsm und mjs zu tun haben. Vielen Dank für Ihre Hilfe! (In v134.0.2 - alles Ok)
-
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!
JavaScript
Alles anzeigen// 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");
-
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!
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