Einbindung von Icons in Skripts

  • Mir kamen gerade noch zwei Gedanken.

    1. Die Variablen müssen irgendwie auch den Code der anzuwendenden Funktion eingegrenzt werden!

    2. Der Beitrag davor und dieser hier könnten die Ersten sein im angepinnten Diskussionsthread.

    Mit <3lichem Gruß

    Mira

  • das sollte für unerfahrene doch machbar sein, oder?

    Nur so ein Gedanke:

    Zu Zeile 6 - 7.

    Das setzt aber vorraus, dass der User einen Unterordner Icons im Ordner chrome hat, bzw. diesen erst selber erstellen muss. Und in diesem Ordner sich dann die Icons befinden müssen.

    Manche User haben ja irgendwo im PC einen Ordner für ihre ganzen Icons.;)

  • Das ist ja das kleinste Problem: Dann macht man den Pfad auch noch anpassbar. ;) Grundsätzlich denke ich schon, dass eine einfache Konfiguration mit Erklärung der zielführenste Ansatz ist. Und ich bin der Meinung, dass der Standard schon sein sollte, dass die Icons nicht weit vom Script entfernt liegen. Dass man irgendwo ganz woanders einen allgemeinen Icon-Ordner hat, mag es natürlich auch geben, aber das halte ich eher für eine Ausnahme als eine Regel. Und in dem Fall kann man dann ja den Pfad im Script anpassen.

  • Zumal die Tipps, die ich durchaus ab und an gebe, ja auch nicht nachhaltig umgesetzt werden, sondern gefühlt nach fünf Minuten schon wieder vergessen wurden. Wieso sollte das durch mehr Menschen, die etwas schreiben, anders sein?

    Ich schreibe (fast) immer mit. ;)
    Meine Sammlung an potentiellen Lösungsansätzen ist massiv.

    Deine Tipps - und die von einigen anderen Beitragenden - gehen bei mir zumindest nicht verloren, und vielen Dank dafür an dieser Stelle. :)

    Manchmal muss man halt auch Dinge wiederholt reinhämmern bis etwas greift, das ist mein Eindruck.;)

  • :/
    Kommen wir wieder zu meinem Vorschlag zurück, bitte.

    Ja, da ist noch so ein Fehler vorhanden, daran hatte ich ja auch gedacht uns es in einem weiteren Beitrag kurz angerissen!
    Nun meine Frage, sollten solche Variablen erst nach, bzw. in der Funktion definiert werden,
    oder gibt es eine andere Möglichkeit, diese nur auf das eine Skript zu begrenzen?

    Was den "Grafik"-Ordner angeht, bleibe ich bei meiner Version.
    Es gibt eine Erklärung und wenn jemand schon irgendwo auf seinem Datenträger
    so einen Ordner angelegt hat, nutzt er wahrscheinlich auch schon andere Skripte.
    Die muss er ja auch angepasst haben, richtig?
    Und falls dennoch Fragen aufkommen, ist doch dieses Board da, oder etwa nicht?

    Also, noch einmal zu meinem Vorschlag eines Headers und dem Konfigurationsbereich,
    gibt es dazu noch weitere Vorschläge?
    Oder Verbesserungen?

    (Mir ist schon klar, dass niemand sich nun alles Skripte vornimmt und sie "umschreibt",
    aber so nach und nach wären wohl viele einheitlich.)

    Horstmann Könntest Du mir diese Sammlung mal zukommen lassen?

    Mit <3lichem Gruß

    Mira

  • Horstmann Könntest Du mir diese Sammlung mal zukommen lassen?

    Es ist nicht die Art von Sammlung die für eine Veröffentlichung taugt.
    Das sind tausende Dateien mit Querverweisen und Aliasen, ich komm selber kaum noch durch... ;)

    Schade. Aber nicht schlimm.
    Aber wir sollten bei Skripten darauf achten, z.B. keine "..." mehr zu verwenden. Statt dessen '....'.
    Und so einige andere Dinge müssen wir auch noch festlegen.

    Mit <3lichem Gruß

    Mira

  • (Mir ist schon klar, dass niemand sich nun alles Skripte vornimmt und sie "umschreibt",
    aber so nach und nach wären wohl viele einheitlich.)

    Das Umschreiben der "Bestandsskripte" würde ich wirklich nicht ins Auge fassen. Wenn sich dann wieder etwas ändert oder eine neue "Verbesserung" anliegt, dann kann man das ganze Procedere wieder von vorne durchexerzieren.

    Wie ich schon geschrieben habe, würde ich für solche Aufgaben einen modularen Aufbau per export/import zB. als .mjs-Datei nutzen, wie es auch Mozilla beim Firefox macht. Und da ja Javascript auch weitestgehend objektorientierte Programmier-Paradigmen unterstützt, könnte man beispielsweise ein Klasse 'ucIcon' definieren, wo die ganze Funktionalität für die benötigten Icons gekapselt wird und die dann über new und einem passenden Konstruktor instanziert wird. So wie es eben in allen anderen objektorientierten Sprachen Standard ist.

    Mit der Zeit könnten dann verschiedene andere Aspekte der userChrome-Skripte als neue Klassen in das Modul hinzugefügt werden. So eine Art "userChromeUtils"-Modul, welches man einfach in jedes Skript per Import einfügen kann.

    Ich würde es ja selber ausprobieren, aber ich habe leider momentan überhaupt keine...............Lust dazu 😴.

    Aber mal schauen.

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

    2 Mal editiert, zuletzt von BrokenHeart (14. Mai 2025 um 18:16)

  • Die da meinte ich => '...'
    Aber wir können uns auch auf was anderes einigen.

    BrokenHeart Hast Du mal einen Link, wonach ich da suchen muss?
    Denn ich habe gerade nur eine ungefähre Vorstellung von dem, was Du da vorschlägst.

    So etwas wie eine Icon.dll unter Windows?

    Mit <3lichem Gruß

    Mira

  • Das Umschreiben der "Bestandsskripte" würde ich wirklich nicht ins Auge fassen. Wenn sich dann wieder etwas ändert oder eine neue "Verbesserung" anliegt, dann kann man das ganze Procedere wieder von vorne durchexerzieren.

    Dieses Umschreiben haben wir doch neulich schon durchexerziert, mit den inline events Dingens.
    Was nicht das erste oder letzte Mal ist.
    Änderungen die nicht strukturell nötig sind werden übernommen oder auch nicht, das zwingt niemanden zu Änderungen.

    Was mich angeht, ist die komplette Diskussion über die Beibehaltung von in Javascript Dateien integrierten Bilddateien, wie etwa base64<X Icons - oder nicht.

    Was wiederum eine Diskussion darüber ist, ob es einem User zugemutet werden kann, eine komplexe Manipulation eines sehr komplexen Internet Browsers vorzunehmen, nachdem schon eine notwendige Vorbereitung zur Ausführung dieser Manipulation stattgefunden hat - ohne auch noch ein Bild in einen vordefinierten Ordner packen zu müssen.

    Was mich angeht, wäre eine Version mit manuell zu installierendem Icon am sinnvollsten, plus einer möglichst einfachen Fallback Lösung, wie es Mira mit dem warning Icon gemacht hat.

    Der Fallback va für den Fall, dass wie oft ein Button automatisch in einer Leiste plaziert wird - aber ohne Icon sieht der User nur ein Leerfeld, und je nach Layout nicht mal das, weil es uU in Spacern untergeht und dann der Button scheinbar nicht existiert.

    Die Fallback Geschichte ist von der AI/KI Diskussion verschluckt worden; ist wegen mir auch nicht zwingend nötig, aber könnte bestimmt einfach sein wenn sich das ein Experte mal kurz anschaut (#49 ->)- und Mira mal kurz ihren Einfärbungsfetisch beiseite lässt. ^^

  • Hast Du mal einen Link, wonach ich da suchen muss?

    JavaScript modules - JavaScript | MDN
    This guide gives you all you need to get started with JavaScript module syntax.
    developer.mozilla.org
    import - JavaScript | MDN
    The static import declaration is used to import read-only live bindings which are exported by another module. The imported bindings are called live bindings…
    developer.mozilla.org

    So etwas wie eine Icon.dll unter Windows?

    Nicht ganz. DLLs sind ja speziell für für die gemeinsame Nutzung von Code durch mehrere unterschiedliche Anwendungsprogramme entwickelt worden Also eine Library, die nicht zur Linkzeit statisch eingebunden wird, sondern eben zur Laufzeit dynamisch.

    Da die userChrome-Skripte aber alle Teil der Firefox-Anwendung sind und bei Javascript auch nichts vorab compiliert bzw. statisch oder dynamsich gelinkt wird, ist es einfach eine anwendungsspezifische "Library" oder eher "Modul" auf Sourcecode-Ebene. So ähnlich wie beim Import von CSS-Dateien.


    Dieses Umschreiben haben wir doch neulich schon durchexerziert, mit den inline events Dingens.
    Was nicht das erste oder letzte Mal ist.

    Das waren aber auch Änderungen, die unbedingt notwendig waren, weil sonst das Skript überhaupt nicht mehr lief. Solche Sachen müssen auch weiterhin überall angepasst werden, wenn man das Skript weiter nutzen möchte. Außerdem halte ich es nicht für sinnvoll, so elementare Dinge wie Eventlistener auszulagern, da sie ja sehr speziell sind. Da kann man nichts verallgemeinern.

    Anderes sieht es bei solchen Sachen wie den Icons bei Buttons aus...

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

    Einmal editiert, zuletzt von BrokenHeart (14. Mai 2025 um 19:42) aus folgendem Grund: Ein Beitrag von BrokenHeart mit diesem Beitrag zusammengefügt.

  • Sören Hentzschel Horstmann 2002Andreas milupo Mitleser .DeJaVu grisu2099 BrokenHeart Endor Dharkness und all die anderen.
    Sollte ich jemanden vergessen haben, dann bitte ich um Entschuldigung, es war keine böse Absicht.

    Nur so als Vorschlag.

    Hallo Mira_Belle, ich wundere mich, dass du mich in dieser illustren Aufzählung erwähnst, obwohl meine Scripte 'einfach programmiert' (aber damit auch 'relativ updatesicher') sind und lediglich Alternativen zu den hier schon seit Jahren genutzten (und gepflegten) S. darstellen. Ich werde den Kopf meiner Scripte NICHT ändern. Das kann der User machen und Quelle, Datum, Entwickler hinzufügen. Auch steht in meinen Scripten ein großer Bereich im Haeder zur Konfiguration durch den User zur Verfügung. Eine ausführliche Beschreibung am Anfang des S. ist selbstverständlich. Außerdem kann der User den Pfad zum Icon-Ordner innerhalb des 'crome-Ordners' selbst festlegen. Wer den absoluten Pfad zum Icon bevorzugt, sollte wissen wie man das S. umschreibt. Oder alternativ einfach einen neuen Ordner innerhalb des 'crome-Ordners' neu anlegen.
    (Wenn der absolute Pfad im Kommentar erklärt werden sollte, dann bitte für Win, Lin, Mac.)

    Akt. Beispiel-Scripte mit diesen Voraussetzungen:

    Spoiler anzeigen

    Dieser Beitrag ist ohne Hilfe einer 'KI' entstanden.

    Einmal editiert, zuletzt von Mitleser (14. Mai 2025 um 22:41)

  • Hallo Mira_Belle, ich wundere mich, dass du mich in dieser illustren Aufzählung erwähnst, ...

    1. Weil ich den Eindruck hatte, dass Du JS wie Deine Muttersprache verstehst!
    2. Weil ich auch Deine Meinung zu dem Thema "hören" wollte.
    3. Weil ich eben davon ausging, dass Du zu dem Thema etwas beitragen kannst.

    Reicht das?

    -------------------------------------------------------------------------------------------------------
    @all

    Ich bin wohl gerade mit dem falschen Fuß aufgestanden.

    Da zwar immer mal wieder das Thema aufkam, ging ich davon aus, hoffte ich,
    dass man endlich mal auf einen Nenner kommen könnte.

    Mir scheint, ich liege falsch.
    Ein jeder möchte sein eigenes Süppchen kochen und die Schaffung einer einheitlichen Linie stößt auf breite Ablehnung!
    So werden weiterhin unzählige Skripte mit gleichen oder ähnlichen Funktionen, aber alle anders im Code und Aufbau,
    hier im Board herumschwirren und ständig, oder oft, müssen diese dann,
    wenn es im Firefox Änderungen gibt, neu angepasst werden.

    Was mir zu wieder ist, die Einstellung, wer es nicht hinbekommt sich ein Skript, was Pfade angeht oder schon das Symbol
    zu ändern, der darf halt keine Skripte nutzen.

    Ich werde hier jetzt etwas kürzertreten, schauen, was sich noch so tut, die eine oder andere Idee aufgreifen
    und koche dann halt auch mein eigenes Süppchen.

    Schade, da ich mit Horstmann glaubte, einen Mitstreiter gefunden zu haben.


    Stell dir mein Erstaunen vor; Mira_Belle , kann ich raus aus der Liste - manche Assoziation würde ich lieber vermeiden? 8)

    Ich habe gerade die ganze Aufzählung entfernt und konnte mich gerade noch so beherrschen nicht einfach alles zu löschen!
    Das Thema hat sich für mich vorerst erledigt, Du kannst alleine weiter dafür plädieren einen einheitlichen Stil bei Skripten
    herbei zu führen. Ich gugge zu und schaue, was sich da tut.

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (15. Mai 2025 um 09:54) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.