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

  • könnte es auch sein, dass einfach nur der Reload im falschen Fenster stattfindet? Dass z.b.: event.target.ownerGlobal.BrowserCommands.reloadSkipCache();statt BrowserCommands.reloadSkipCache(); schon reichen würde?

    Das kann sein. Ich hab das mangels Kenntnis dieser Anweisungen nicht getestet.

    Müsste die Funktion an sich dann nicht auch nach unten?

    Hmm. Ich habe diese bei mir funktionierende Version und genau das getan:

    moko2000, such dir eine der Varianten aus, diese von mir oder die vom Mitleser ein paar Postings weiter oben.

    Und lassen sich so zum Bleistift einbinden.

    Das kann man sogar zusammenfügen: Zeile 1 und 2 vertauscht, Variablenname angepasst:

    JavaScript
    let ButtonIcon = "default_icon.svg"; // Name & Dateiendung des anzuzeigenden Symbols!
    let IconPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons', ButtonIcon )); // Pfad zum Profilordner und gleich in den entsprechenden Unterordner

    Und dann Zeile 6 entsprechend geändert:

    Code
    #browser-toolbox-button { list-style-image: url("${IconPath}") }
  • Herr Speravir.
    Danke. Ich weiß nicht, wie ich zitieren soll.

    AnimationToggleButton.uc.js funktioniert jetzt im zweiten Fenster.
    In diesem Fall bleibt die GIF-Animation im ersten Fenster gleich, aber nur die Schaltfläche ändert sich.

  • Bitte helfen Sie, das Problem mit dem Skript auf FF 138.0.1 zu lösen. Partition Übergang funktioniert nicht, nicht öffnen Explorer.

    Spoiler anzeigen

    var gExternalApplications = {
    type: 'button', //'menu' or 'button'
    insertafter: 'PersonalToolbar',


    apps: [
       {name: 'C:', path: 'C:\\'},
       {name: 'D:', path: 'D:\\'},
        {name: 'E:', path: 'E:\\'},
        {name: 'F:', path: 'F:\\'},
    ],


    init: function() {
    for (var i=0; i<this.apps.length; i++) {
    if (!this.apps[i].path) continue;
    if (!this.apps[i].args) this.apps[i].args = [];


    this.apps[i].path = this.apps[i].path.replace(/\//g, '\\');


    var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path;
    if (/^(\\)/.test(this.apps[i].path)) {
    this.apps[i].path = ffdir.substr(0,2) + this.apps[i].path;
    }
    else if (/^(\.)/.test(this.apps[i].path)) {
    this.apps[i].path = ffdir + '\\' + this.apps[i].path;
    }
    }


    if (this.type == 'menu') {
    var mainmenu = document.getElementById('main-menubar'); // das war das Original
    var menu = mainmenu.appendChild(document.createXULElement('menu'));
    menu.setAttribute('label', 'Start'); // Menu = "Start"
    menu.setAttribute('accesskey', 'a');


    var menupopup = menu.appendChild(document.createXULElement('menupopup'));
    for (var i=0; i<this.apps.length; i++) {
    menupopup.appendChild(this.createMenuitem(this.apps[i]));
    }
    }
    else {
    var menubarItems = document.getElementById(this.insertafter);
    var toolbar = menubarItems.parentNode.insertBefore(document.createXULElement('toolbar'), menubarItems.nextSibling);
    toolbar.id = 'ExtAppButtons';
    toolbar.setAttribute("class", "browser-toolbar chromeclass-toolbar-additional");
    toolbar.setAttribute("orient", "horizontal");
    for (var i=0; i<this.apps.length; i++) {
    toolbar.appendChild(this.createButton(this.apps[i]));
    }
    }
    },


    exec: function(path, args) {
    for (var i=0; i<args.length; i++) {
    args[i] = args[i].replace(/%u/g, gBrowser.currentURI.spec);
    }


    var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
    file.initWithPath(path);
    if (!file.exists()) {
    throw 'File Not Found: ' + path;
    }


    if (!file.isExecutable() || args.length==0) {
    file.launch();
    }
    else {
    var process = Cc['@mozilla.org/process/util;1'].getService(Ci.nsIProcess);
    process.init(file);
    process.run(false, args, args.length);
    }
    },


    createButton: function(app) {
    if (app.name == 'separator')
    return document.createXULElement('toolbarseparator');


    var item = document.createXULElement('toolbarbutton');
    item.setAttribute('class', 'bookmark-item');
    item.setAttribute('label', app.name);
    item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
    item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);');
    // item.setAttribute('tooltiptext', app.name);
    item.path = app.path;
    item.args = app.args;
    return item;
    },


    createMenuitem: function(app) {
    if (app.name == 'separator')
    return document.createXULElement('menuseparator');


    var item = document.createXULElement('menuitem');
    item.setAttribute('class', 'menuitem-iconic');
    item.setAttribute('label', app.name);
    item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
    item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);');
    item.path = app.path;
    item.args = app.args;
    return item;
    }
    };
    gExternalApplications.init();

    Um mit Ihnen zu kommunizieren, benutze ich Google Translate. Bitte entschuldigen sie meine schlechte deutsche sprache <3

  • bege Das Skript, welches der pro100user verwendet, ist ein anderes, nämlich External-Applications.uc.js, mit dem man externe Anwendungen starten kann. pro100user „missbraucht“ es aber, um Partitionen aufzurufen statt Anwendungen.

    Ü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

  • pro100user Probiere folgende Skriptversion:

    Klicke auf das Symbol im Kasten oben rechts. Dann wird der Text aus dem Code-Kasten in die Zwischenablage kopiert und du kannst dann den Skript-Text in deinen Editor einfügen.

    Bitte setze nicht jede Zeile in ein Kästchen! Das ist total unübersichtlich! Klicke stattdessen auf das Symbol links daneben, das einen Code-Kasten in das Antworten-Fenster einfügt, mit dem du den vollständigen Text in einem einzigen Kasten einfügen kannst.

    Ü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

  • Danke. Ich weiß nicht, wie ich zitieren soll.

    • Alles zitieren: rechts unten auf das Anführungszeichen “ drücken.
    • Nur Teile zitieren: mit Maus markieren und entweder mehrere Zitate speichern und dann ganz unten auf die Schaltfläche mit „Ein Zitat“ oder „2 Zitate“ (zählt hoch, wenn mehr) gehen und dann auswählen oder gleich den ausgewählten Text als Zitat einfügen in den Editor für die Antworten einfügen lassen.

    AnimationToggleButton.uc.js funktioniert jetzt im zweiten Fenster.
    In diesem Fall bleibt die GIF-Animation im ersten Fenster gleich, aber nur die Schaltfläche ändert sich.

    Dadurch, dass man mit Hilfe des Skriptes eine Einstellung im Firefox ändert, die im gesamten Profil gültig ist, lässt sich letzteres meines Wissens nach nicht verhindern.

  • Danke. Ich weiß nicht, wie ich zitieren soll.

    • Alles zitieren: rechts unten auf das Anführungszeichen “ drücken.
    • Nur Teile zitieren: mit Maus markieren und entweder mehrere Zitate speichern und dann ganz unten auf die Schaltfläche mit „Ein Zitat“ oder „2 Zitate“ (zählt hoch, wenn mehr) gehen und dann auswählen oder gleich den ausgewählten Text als Zitat einfügen in den Editor für die Antworten einfügen lassen.

    AnimationToggleButton.uc.js funktioniert jetzt im zweiten Fenster.
    In diesem Fall bleibt die GIF-Animation im ersten Fenster gleich, aber nur die Schaltfläche ändert sich.

    Dadurch, dass man mit Hilfe des Skriptes eine Einstellung im Firefox ändert, die im gesamten Profil gültig ist, lässt sich letzteres meines Wissens nach nicht verhindern.

    Hr.Speravir. Entschuldigen Sie die verspätete Antwort. Ich habe auch gelernt, wie man zitiert. Vielen Dank.
    Vielen Dank, dass Sie sich die Zeit genommen haben, mich zu unterrichten.
    Ich habe auch die Schaltflächenänderungen im ersten Fenster mithilfe von AnimationToggleButton.uc.js verstanden.
    Ich freue mich darauf, im deutschen Firefox-Forum weiterhin von Ihnen allen zu lernen.
    Ich spreche kein Deutsch, deshalb verwende ich Google Translate. Bitte entschuldigen Sie die seltsame Formulierung.

  • Ich spreche kein Deutsch, deshalb verwende ich Google Translate.

    Hi, welche Sprache ist denn die Ihre, wenn ich fragen darf?
    Und DeepL übersetzt viele Sprachen viel besser als Google!

    DeepL Translate – Der präziseste Übersetzer der Welt
    Übersetzen Sie Texte und ganze Dateien im Handumdrehen. Präzise Übersetzungen für Einzelnutzer und Teams. Jeden Tag nutzen Millionen von Menschen DeepL.
    www.deepl.com

    Mit <3lichem Gruß

    Mira

  • Dadurch, dass man mit Hilfe des Skriptes eine Einstellung im Firefox ändert, die im gesamten Profil gültig ist, lässt sich letzteres meines Wissens nach nicht verhindern.

    Kleine Anmerkung:
    Das Script aus RE: userChrome.js Scripte für den Fuchs (Diskussion) funktioniert wie erwartet (Änderung der Animation sowie des Icons ausschließlich im aktiven Fenster).

    Dieser Beitrag ist ohne Hilfe einer 'KI' entstanden.

  • Dadurch, dass man mit Hilfe des Skriptes eine Einstellung im Firefox ändert, die im gesamten Profil gültig ist, lässt sich letzteres meines Wissens nach nicht verhindern.

    Kleine Anmerkung:
    Das Script aus RE: userChrome.js Scripte für den Fuchs (Diskussion) funktioniert wie erwartet (Änderung der Animation sowie des Icons ausschließlich im aktiven Fenster).

    Nur aus Neugierde, ist damit gleichzeitig auch dieses Problem gelöst?:/

  • Nicht bei mir, Problem #1, wie beschrieben. :/
    Erstes Fenster A schliessen, dann in Fenster B probieren.

    ist damit gleichzeitig auch dieses Problem gelöst? :/

    An Deinem Smily sehe ich, dass Du die Antwort schon kennst. Das war aber auch nicht das Thema in dieser Kommunikation.

    Nein, an dem Grübel Smiley siehst du dass ich die Antwort nicht kannte, daher die Frage.
    Ich weiss immer noch nicht was das Script machen soll, also auch nicht wie ich es selber testen könnte.

    Das Thema ist aber sehr wohl die allgemeine, nicht eingeschränkte Nutzbarkeit, egal mit welcher Lösung, worauf sich dein Beitrag bezog - inklusive zitiertem Text zu eben der von mir nachgefragten Problematik.
    Du hast selber beides verbunden. ;)

    Aber Semantik und Empfindlichkeiten beiseite, die Fragestellung hört sich interessant an, aber was ist sie eigentlich?
    Ist es sowas: der Button soll für alle geöffneten Fenstern das gleiche bewirken, egal in welchem Fenster er aktiviert wird, und idealerweise dann auch noch bei: Problem #1, wie beschrieben. Erstes Fenster A schliessen, dann in Fenster B probieren.?

    Falls ja, ich habe Buttons die genauso funktionieren, und die benutzen das gleiche Prinzip wie das von Speravir in #4443, aber mit anderen und einfacheren Funktionen. :/

  • Kleine Anmerkung:
    Das Script aus RE: userChrome.js Scripte für den Fuchs (Diskussion) funktioniert wie erwartet (Änderung der Animation sowie des Icons ausschließlich im aktiven Fenster).

    Ach stimmt, das wollte ich ja noch ausprobieren.

    Ich weiss immer noch nicht was das Script machen soll, also auch nicht wie ich es selber testen könnte.

    Das vom Mitleser? (Edit: Ach, hattest Du mich am letzten Dienstag ja schon mal gefragt.) Dasselbe wie AnimationToggleButton in meinem Beitrag Nr. 4443: Es wird die Einstellung image.animation_mode auf einen von drei möglichen Werten geändert und dann die aktuelle Seite neu geladen (sollte es zumindest), wobei sich auch der Button selbst ändert/ändern sollte. Das Ergebnis kann man mit allen animierten Grafiken testen, Beispiele (alle Wikimedia Commons):

    Animierte Webp werden ebenso behandelt, da müsste man dann aber das Bild selbst noch laden, Beispiel File:Endlosschleife durch Batchdatei (Windows 8.1).webp (Direktlink zur Datei, 1400×1080px).

    Es wäre übrigens tatsächlich mal interessant, was man in MacOS statt des Mittelklicks tun muss.

  • Ich spreche kein Deutsch, deshalb verwende ich Google Translate.

    Hi, welche Sprache ist denn die Ihre, wenn ich fragen darf?
    Und DeepL übersetzt viele Sprachen viel besser als Google!

    https://www.deepl.com/de/translator

    Hallo. Hr.Mira_Belle. Ich bin Japaner und spreche Japanisch.
    Ich kannte DeepL, habe es aber nicht viel verwendet.
    Ich habe auch angefangen, Translate_DeepL.uc.js zu verwenden.
    Ich werde von nun an versuchen, mit DeepL zu übersetzen.
    Vielen Dank, dass Sie mich informiert haben.