userChrome.js Scripte für den Fuchs (Diskussion)

  • In der Bibliothek kann man sie auch als .json-Datei speichern, Importieren und Sichern --> Sichern.


    Ich habe jetzt mal meine Version an Aris gemeldet:

    [JavaScript][Firefox] General JavaScript talk and custom userChrome.js scripts (v2) · Aris-t2 CustomJSforFx · Discussion #60
    Lets discuss everything related to JavaScript here instead of opening new threads for questions or request. Continued from #4 Custom scripts…
    github.com

    Dort ganz unten. Irgendwie bin ich da nicht mit dem Code-Kasten klargekommen.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

    Einmal editiert, zuletzt von milupo (20. März 2025 um 14:29) aus folgendem Grund: Ein Beitrag von milupo mit diesem Beitrag zusammengefügt.

  • sam2008 Ersetze bitte mal in deiner Version aus Beitrag #4388 die Zeilen 12-16 (also die Zeilen von mir) durch:

    JavaScript
    ChromeUtils.defineESModuleGetters(this, { MigrationUtils: "resource:///modules/MigrationUtils.sys.mjs", });
    ChromeUtils.defineESModuleGetters(this, { BookmarkJSONUtils: "resource://gre/modules/BookmarkJSONUtils.sys.mjs", });
    ChromeUtils.defineESModuleGetters(this, { PlacesBackups: "resource://gre/modules/PlacesBackups.sys.mjs" });

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Moin milupo ,

    ich habe gemacht aber habe ich immer noch mit Restore aber Backup funktioniert.

    .Wenn ich "Bookmarks Restore" klicke, öffnet Fenster und ich wähle eine Backup Datei aber dann bekomme ich diese Fehler für diese Teil in Code:

    JavaScript
                // confirm ok to delete existing bookmarks
               if (!Services.prompt.confirm(null,
                      PlacesUIUtils.getString("bookmarksRestoreAlertTitle"), // <=== das  ist Line 100
                      PlacesUIUtils.getString("bookmarksRestoreAlert")))
                 return;



    Mfg

  • PlacesUIUtils.getString() gibt es bereits seit Firefox 114 (!) nicht mehr. Gleiches gilt für die verwendeten Sprachvariablen.

    Ersetze diesen Teil:

    JavaScript
    if (!Services.prompt.confirm(null,
        PlacesUIUtils.getString("bookmarksRestoreAlertTitle"),
        PlacesUIUtils.getString("bookmarksRestoreAlert")))
      return;

    Hiermit:

    JavaScript
    const [title, body] = PlacesUIUtils.promptLocalization.formatValuesSync([
      'places-bookmarks-restore-alert-title',
      'places-bookmarks-restore-alert',
    ]);
    
    if (!Services.prompt.confirm(null, title, body)) {
      return;
    }
  • Öffnen Sie die Sidebar, um diese Schaltfläche zu sehen.

  • Bitte probieren Sie ein nützliches kleines Skript für Monkey aus.

  • Huhu,

    Skrip funktionieren nicht mehr seit dem aktuellen Update


    Scrip1

    Das ist der ProfilOrdner


    Translator_DeepL.uc.js

    was muß geämdert werden für die neue Version ?

  • Erst einmal zum Profilordner-Skript. Probiere mal diese Version:

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Translator_DeepL.uc.js

    Mit <3lichem Gruß

    Mira

  • Und für das zweite Skript probiere mal diese Version:

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Erst einmal zum Profilordner-Skript. Probiere mal diese Version:

    Ich wollte nur nochmal darauf hinweisen.
    Deine Version(en) funktionieren bei mir nur das für bzw. in dem bei Programmstart geöffneten Fenster, also das erste "Original" Fenster.

    ZB: Firefox starten, zweites Fenster öffnen, erstes "Original" Fenster schliessen -> kein Script mit dieser Methode (Fix 1 in den Scripts im Link) funktioniert dann mehr, zumindest hier, obwohl der Button erzeugt wird.

    Das gilt nur für Scripts mit diesem Aufbau.

  • Für den Aufruf des Profilordners:

    Anschauen und gegebenfalls milupo's Skript so abändern!
    Es geht um die Zeilen nach } catch(e){} bis    });.
    let ProfilePath ist dann schon nicht mehr zu benutzen.

    Mit <3lichem Gruß

    Mira

  • Deine Version(en) funktionieren bei mir nur das für bzw. in dem bei Programmstart geöffneten Fenster, also das erste "Original" Fenster.

    Ich bin froh, dass ich Skripte halbwegs anpassen kann. Und mein Eindruck ist, dass doch sehr wenige die Skripte über mehrere Fenster hinweg verwenden. Zur Zeit sind es zwei, drei Nutzer.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Ich bin froh, dass ich Skripte halbwegs anpassen kann. Und mein Eindruck ist, dass doch sehr wenige die Skripte über mehrere Fenster hinweg verwenden. Zur Zeit sind es zwei, drei Nutzer.

    Geht mir nicht anders, aber wenn man Skripte so gestalten kann, dass sie auch über mehrere Fenster funktionieren,
    denke ich, sollten wir es gleich tun. Da gebe ich Horstmann recht, nicht, dass dann wieder Fragen aufkommen.

    Mit <3lichem Gruß

    Mira

  • Deine Version(en) funktionieren bei mir nur das für bzw. in dem bei Programmstart geöffneten Fenster, also das erste "Original" Fenster.

    Ich bin froh, dass ich Skripte halbwegs anpassen kann. Und mein Eindruck ist, dass doch sehr wenige die Skripte über mehrere Fenster hinweg verwenden. Zur Zeit sind es zwei, drei Nutzer.

    Mehr kann ich auch nicht, und bin genauso froh darum.;)
    Es ist nur ein minimaler Unterschied zwischen den beiden Varianten, und gleich einfach umzusetzen, also warum nicht die bessere Variante benutzen?

    Bei mir am Mac ist es sehr auffällig, weil hier Firefox nicht beendet wird beim Schliessen aller Fenster, also habe ich oft eine aktive, aber fensterlose Fx App im Dock; ich vermute sehr viele User stolpern eventuell mal über das Problem, ohne es zu melden oder nachvollziehen zu können.

    Nicht zu vergessen dass mehrere Fenster sehr wohl benutzt werden, gerade auch in einem Setup mit mehr als einem Monitor; in dem Fall kann es ganz schnell Ärger geben mit einem Script das nicht alle Fenster - wie im Einzelfall gewünscht - bedienen kann.

    Letztlich ist es aber auch einfach ein Fehler im Script, ich glaube dieser krummnasige Spacken fing damit an, und wurde dann korrigiert von diesem gutaussehenden Genie. 8)

    Edit:
    Zum Vergleich, hier nochmal ein Beispiel am aktuellen Script; die Fix #1 und Fix #2 Codeblöcke sind kinderleicht gegeneinander auszutauschen.
    Wie gesagt, das Ganze gilt nur für diese Art von Aufbau bzw. Buttonimplentierung.

    3 Mal editiert, zuletzt von Horstmann (2. Mai 2025 um 22:49)

  • Da kann ich auch noch ein Script beisteuern, funktioniert in allen Fenstern, und ohne Fehler in der Konsole.

    Grüße vom FuchsFan

  • In der letzten Version des Skripts "ExtensionOptionsMenu.uc.js" bei Endor funktionieren im Fx 138 die oberen drei Buttons nicht mehr. Die Hauptfunktionen für die Add-ons funktionieren.

    Im Skript gibt noch "on..."-Attribute von Elementen. Die Fehlerkonsole wirft für die Zeilen 132 und 202 entsprechende Fehler aus, wo diese Attribute verarbeitet werden.

    Außerdem in Zeile 144 ein "onclick"-Attribut.

    Obwohl es mir in einigen anderen Skripten mit den Hinweisen hier im Forum gelungen ist, passende Eventhandler hinzuzufügen, gelingt mir das bei diesem Skript an keiner Stelle.

    Wer kann helfen?

    Edit:

    Alte Zeile 132 ersetzen durch

    JavaScript
    if(a === "oncontextmenu") {
       toolbaritem.addEventListener('contextmenu', function(event) {  	Function(attributes[a])(); });
    } else {
       toolbaritem.setAttribute(a, attributes[a]); 
    }

    alte Zeile 203 ersetzen durch

    alte Zeile 144 ersetzen durch

    JavaScript
    		mp.addEventListener('click', (event) => {
    			event.preventDefault(); event.stopPropagation();
    		});

    2 Mal editiert, zuletzt von bege (3. Mai 2025 um 08:19) aus folgendem Grund: Lösung in anderen Skripten gefunden