Reihenfolge von Skripten, Bedeutung und Anwendung?

  • Firefox-Version
    111.01
    Betriebssystem
    macOs 10.13.6

    Dieser Beitrag von 2002Andreas hatte mich zum Grübeln gebracht:

    Reihenfolge bei Skripts nach Namen.

    Es scheint also, dass die Namensgebung der Skripts die Reihenfolge in der sie geladen werden beeinflusst.

    Nachdem ich Probleme hatte mit einer selbstgebastelten zusätzlichen Toolbar, die hartnäckig den einer modifizierten Lesezeichenleiste zugewiesen Erweiterungsbutton (ebenfalls per Skript appliziert) beim Browserstart für sich beansprucht hat - was dann zu allen möglichen anderen Problemen geführt hat - hatte ich mich an den Beitrag erinnert.

    Langer Satz, sorry, ich hoffe es macht etwas Sinn.

    Ich konnte die Probleme allerdings erstaunlicherweise dadurch lösen, daß ich die Dateinamen der einzelnen Skripts alphabethisch sortiert habe; einfach ein Buchstabe dem ursprünglichen Dateinamen vorgestellt, etwa so:

    A_Toggle_Lesezeichenleiste.uc.js

    B_Scratch_Addonbar.uc.js

    C_extension-button-movable.uc.js

    ( Alle Skripts sind zusätzlich in der Funktion stark abhängig von CSS Dateien, die via userChrome.css importiert werden; diese hatte ich nicht in der Reihenfolge verändert. )

    Das anfängliche Problem scheint also gelöst, aber habt Ihr zu der Sache evtl. Tips, Links oder sonstigen Rat, für ein besseres Verständnis der Thematik?


    Der Screenshot zeigt ein etwas grobes Testprofil; der Erweiterungsbutton ist, nur als generelle Illustration.

    • Hilfreichste Antwort

    daß ich die Dateinamen der einzelnen Skripts alphabethisch sortiert habe

    Das passiert ja automatisch in Windows schon.

    Sieht so aus im Ordner chrome:

    Nur wenn du einige Scripte früher starten lassen willst/musst, dann musst du die umbenennen.

    Alternativ kannst du auch eine Zahl davor schreiben, statt einem Buchstaben.

    sonstigen Rat, für ein besseres Verständnis der Thematik?

    Nicht wirklich. ;)

    Z.B. muss eine Addon Leiste sehr früh gestartet werden, damit die Button vom Fx darin dann angezeigt werden können, wenn man sie dorthin verschoben hat.

    Darum ist der Name Addon Leiste besser als z.B. Toolbar, oder auch Zusatztoolbar.

    Toggle_Lesezeichenleiste.uc.js

    Bei dem Namen könntest du das Toogle_ z.B. weglassen, dann weißt du trotzdem noch um was es geht mit dem Skript.

    Oder umbennen in: Lesezeichenleiste_Toggle.uc.js

    Dann wird es auch schon vorher geladen.

    Und wie schon gesagt, der Name hat nichts mit der Funktion vom Skript zu tun, sondern nur an welcher Stelle es geladen werden soll.

  • Eventuell ließe sich auch in der userChrome.js festlegen in welcher Reihenfolge

    und nach welcher Zeit welches Skript geladen werden soll.

    Nachtrag.

    Mit der Verzögerung habe ich gerade ausprobiert, klappt!

    JavaScript
    userChrome.ignoreCache = true;
    setTimeout(function() {
    userChrome.import("scripts", "UChrm");
    }, 2000);

    Mit dieser Überlegung könnte man z.B. direkt ein Skript in einem anderen Pfad sofort laden

    und alle anderen etwas Zeitversetzt!

    also z.B.

    JavaScript
    userChrome.ignoreCache = true;
    userChrome.import("ordnername/myscript.js", "UChrm");
    setTimeout(function() {
    userChrome.import("scripts", "UChrm"); //so fern alle anderen Skripte in diesem Ordner liegen!
    }, 200);

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (30. März 2023 um 00:47)

  • Z.B. muss eine Addon Leiste sehr früh gestartet werden, damit die Button vom Fx darin dann angezeigt werden können, wenn man sie dorthin verschoben hat.

    Darum ist der Name Addon Leiste besser als z.B. Toolbar, oder auch Zusatztoolbar.

    Danke für Deine Erklärungen, das macht Sinn, hat auch so geklappt. :)

    Es ist eines dieser Details, die ich bisher nicht auf dem Schirm hatte, bis es zum ersten Mal Probleme deshalb gab.

  • Vielen Dank, Mira, werd ich notieren! :)

  • Horstmann 30. März 2023 um 11:47

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.
  • werd ich notieren!

    Das ist natürlich ein aufwendiger/umständlicher und auch unnötiger Weg :/

    Du willst ja keine Skripte mit Verzögerung starten, sondern nur die Reihenfolge ändern bzw. ein oder mehrere Skripte sehr früh laden.

    Und dafür reicht ein einfaches Umbennen der Skripte, oder eben auch einfach ein Zahl davor setzen.

  • Das ist natürlich ein aufwendiger/umständlicher und auch unnötiger Weg :/

    Du willst ja keine Skripte mit Verzögerung starten, sondern nur die Reihenfolge ändern bzw. ein oder mehrere Skripte sehr früh laden.

    Und dafür reicht ein einfaches Umbennen der Skripte, oder eben auch einfach ein Zahl davor setzen.

    Notieren in Sinne von Abspeichern der Info, falls ich's mal brauche.

    Ansonsten halte ich alles was Skipts angeht so einfach wie nur möglich, allein schon mangels Kenntnis der Materie; die benutzte Lösung ist die Reihenfolge via Alphabet bzw. Zahlen - wie das funktioniert ist sogar mir klar. ;)

  • Eventuell ließe sich auch in der userChrome.js festlegen in welcher Reihenfolge

    […] welches Skript geladen werden soll.

    Genau das wird anderswo empfohlen. Siehe beispielsweise bei Aris: CustomJSforFx/userChrome.js. (Im Pfad steht „ methode 2“, das ist eine Abwandlung der hier im Forum verwendeten Methode).