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

Beiträge von milupo

  • addons_very_day_updatecheck.uc.js tut nicht mehr

    • milupo
    • 31. Januar 2025 um 15:34
    Zitat von BarbaraZ-

    Mit der Änderung von Milupo aus Beitrag #12 sieht es so aus:

    Oh, ich habe vergessen dazu zu schreiben, dass die Änderungen, die ich genannt habe, auf Fx 136 Nightly bezogen, weil Andreas geschrieben hatte, dass das Skript im Nightly nicht mehr funktioniert, was ich bestätigen kann.

  • addons_very_day_updatecheck.uc.js tut nicht mehr

    • milupo
    • 30. Januar 2025 um 22:07

    Ach ja, ich erinnere mich. Danke.

  • addons_very_day_updatecheck.uc.js tut nicht mehr

    • milupo
    • 30. Januar 2025 um 21:51

    Ich habe noch zwei Ideen, das Skript scheint aber bei mir nicht zu funktionieren, wobei nicht weiß, was es tun soll, da ich das Skript sonst nicht nutze.

    Ich beziehe mich hier auf die Skriptversion in Beitrag #3:

    In Zeile 15 sollte moduleURI zu esModuleURI werden. Da bin ich mir ziemlich sicher.

    Und, wie von Horstmann schon geschrieben, in Zeile 56 ChromeUtils.import in ChromeUtils.importESModule ändern. Allerdings bin ich mir da nicht klar, weil mir kein Modul bekannt ist, das about-addons-verbose-ucjs oder ähnlich heißt. Es ist irgendeine andere Ressource.

  • Firefox v136.0a1 - Skript „saveTo“ funktioniert nicht mehr

    • milupo
    • 29. Januar 2025 um 16:00

    In dem verlinkten Skript kannst du Zeile 7 entfernen und ersetze Zeile 8 durch folgende Zeile:

    JavaScript
    const { FileUtils } = ChromeUtils.importESModule( 'resource://gre/modules/FileUtils.sys.mjs');
  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • milupo
    • 28. Januar 2025 um 13:33

    Hallo Endor, oben in Beitrag #15 ist ein angepasstes Skript (.jsm nach sys.mjs) und Entfernung Inline-Eventhandler. Vielleicht willst du es auf deiner Seite aufnehmen.

  • Firefox v136.0a1 - Skript „copyURL“ funktioniert nicht mehr

    • milupo
    • 28. Januar 2025 um 13:30

    Hallo Endor,

    ich habe hier obiges Skript angepasst (.jsm nach .sys.mjs). Möchtest du es eventuell auf deiner Seite aufnehmen?

    JavaScript
    // copyURL.js
    // Button in the url-bar for “copy url-bar link”
    (async (url, pa = ChromeUtils.importESModule(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.sys.mjs");
    Alles anzeigen
  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 28. Januar 2025 um 12:13
    Zitat von pupil

    Jetzt habe auch ich es begriffen.

    Ich dachte, du weißt das, weil du das Skript schon verwendet hast. Ich verwende es nicht, daher war ich mir nicht ganz sicher, was das Skript wirklich machen soll.

  • Firefox v136.0a1 - Skript „copyURL“ funktioniert nicht mehr

    • milupo
    • 28. Januar 2025 um 11:55

    Ersetze mal Zeile 3 durch:

    JavaScript
    (async (url, pa = ChromeUtils.importESModule(url).PageActions) => pa.addAction(new pa.Action({

    und Zeile 22 durch:

    JavaScript
    })))("resource:///modules/PageActions.sys.mjs");
  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 27. Januar 2025 um 16:50
    Zitat von pupil

    und bei #5 tut sich nichts

    Bei mir schon. Du musst mit dem Mausrad (Mittelklick) etwas gefühlt klicken, dann erscheint auch die Liste, siehe Beitrag #7.

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

    • milupo
    • 27. Januar 2025 um 14:48

    lenny2 Ich glaube ich habe es hinbekommen. Sieh folgende Skriptversion:

    JavaScript
    // ==UserScript==
    // 
    // @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); // по-умолчанию включено
        },
        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("resource:///modules/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

    In den Zeilen 20 und 23 musste nur owner.toggle() in this.toggle() und owner.mouseenter() in this.mouseenter() geändert werden.

  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 27. Januar 2025 um 00:07
    Zitat von Mira_Belle

    Und zwar wollte ich die kompletten Menüs der Menüleiste in das Appmenü verschieben, bzw. kopieren.
    Geht aber warum auch immer nicht!

    Wenn ich mich recht erinnere, wolltest du das mit dieser zusätzlichen Datei machen und das klappte nicht.

    Aber ich habe ja nicht kopiert, sondern umgeschrieben. Da kannst du nicht so einfach kopieren.

  • Entwicklung Firefox

    • milupo
    • 26. Januar 2025 um 22:55
    Zitat von Sören Hentzschel

    Das sind nur die Sprachpakete.

    Oh, lesen müsste man können. Steht ja überall. Als Windows-Nutzer muss man extra nach den Sprachpaketen suchen. :)

  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 26. Januar 2025 um 21:43
    Zitat von .DeJaVu

    Ich kenne mich nicht wirklich damit aus.

    Wem sagst du das. :)

  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 26. Januar 2025 um 21:24
    Zitat von .DeJaVu

    Das Script selbst kommt wohl aus dieser Ecke, und erstellt eine Kopie von Zurück/Vor, siehe Bilder dort.

    Dort zwei Beiträge höher (Beitrag #3) ist die ursprünglich längere Variante von aborix, die der oben vom TE entspricht. Die hat aborix dann auf die von dir verlinkte zusammengestaucht, da der auszuführende Code für beide Schaltflächen ja gleich ist.

  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 26. Januar 2025 um 21:13

    Ich hatte das Skript schon angepasst, weil der TE Fx 136 verwendet. Du kannst aber das Skript auch in Fx 134 testen und dir das selbst anschauen, musst aber dann die Version aus Beitrag #1 nehmen, weil ich nicht weiß, ob meine Anpasserei schon korrekt ist.

  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 26. Januar 2025 um 20:28

    Wenn das bei mir richtig funktioniert, dann werden in der Symbolleiste ein Rückwärts- und ein Vorwärtspfeil angelegt. Per Mittelklick kann man sich eine Liste von Seiten des jeweiligen Buttons anzeigen, wo man dann auswählen kann, wohin man will.


    Bildschirmfoto:

  • Das Script Forward_Back_Button.uc.js funktioniert nicht mehr

    • milupo
    • 26. Januar 2025 um 20:22

    Ein Versuch. Teste mal diese Version:

    JavaScript
    /* Forward_Back_Button.uc.js by aborix */
    
    
    (function() {
     if (window.__SSi != 'window0')
       return;
     function createButton(str) {
       CustomizableUI.createWidget({
         id: 'back-button-2',
         type: 'custom',
         defaultArea: CustomizableUI.AREA_NAVBAR,
         onBuild: function() {
           let button = document.getElementById(str + '-button').cloneNode(true);
           button.id = 'back-button-2';
           button.style.listStyleImage = 'url(chrome://browser/skin/' + str + '.svg)';
           
           button.addEventListener('click', event => {
    		   checkForMiddleClick(this, event); 
    		   if (event.button == 0) {
    			   event.target.ownerDocument.getElementById("' + str + '-button").click();
    		   }
    	   });
    
           	   button.addEventListener('mousedown', event => {
    		   if (event.button == 0) {
    		   event.preventDefault();
    		   }
    	   });
    	   
           return button;
         }
       });
     }
     createButton('back');
    })();
    (function() {
     if (window.__SSi != 'window0')
       return;
     function createButton(str) {
       CustomizableUI.createWidget({
         id: 'forward-button-2',
         type: 'custom',
         defaultArea: CustomizableUI.AREA_NAVBAR,
         onBuild: function() {
           let button = document.getElementById(str + '-button').cloneNode(true);
           button.id = 'forward-button-2';
           button.style.listStyleImage = 'url(chrome://browser/skin/' + str + '.svg)';
           //button.setAttribute('onclick',
           //  'checkForMiddleClick(this, event); if (event.button == 0) event.target.ownerDocument.getElementById("' + str + '-button").click();');
           	   
    	   button.addEventListener('click', event => {
    		   checkForMiddleClick(this, event); 
    		   if (event.button == 0) {
    			   event.target.ownerDocument.getElementById("' + str + '-button").click();
    		   }
    	   });
    	   button.addEventListener('mousedown', event => {
    		   if (event.button == 0) {
    		   event.preventDefault();
    		   }
    	   });	   
           return button;
         }
       });
     }
       createButton('forward');
    })();
    Alles anzeigen
  • Firefox v136.0a1 - Skript „Tooltip with URL“ funktioniert nicht mehr

    • milupo
    • 26. Januar 2025 um 19:51

    Ich denke, das Einfachste ist, die Schaltfläche in das Anpassen-Fenster zu schieben.

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

    • milupo
    • 26. Januar 2025 um 19:06

    lenny2 Im Moment bin ich etwas ratlos. Probiere mal Folgendes. Teste mal diese Skriptversion:

    JavaScript
    // ==UserScript==
    // 
    // @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); // по-умолчанию включено
        },
        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', () => {
    				owner.toggle();						
    		});
          //  btn.setAttribute("onmouseenter", "owner.mouseenter()");
    		btn.addEventListener('mouseenter', () => {
    			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.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("resource:///modules/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
  • addonbar.us.js funktioniert nicht mehr

    • milupo
    • 26. Januar 2025 um 18:41
    Zitat von FuchsFan

    Das Problem ist aber damit auch nicht gelöst.

    Danke, aber da kann ich meine Skriptversion auch behalten. Das neue Skript von Aris weicht ziemlich stark von meiner Version ab. Bei Aris kommt jetzt z. B. die ID addonbar_v nur noch im neuen Zusatzcode vor. Irgendwie scheint mir, als wird hier auf etwas Bezug genommen, was es nicht mehr gibt.

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

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