Button um weiteres Profil zu öffnen

  • Hallo zusammen,

    nachdem bei mir das Skript aus #54 schon gut gepasst hat bin ich nun auf Version 1.05 aus #116 gewechselt und vollauf begeistert.

    Mira_Belle kann ich nur mein Lob aussprechen und mich herzlich bedanken. Aus meiner scherzhaften Bemerkung in Beitrag #8 ist ein wunderbares Programm entstanden.

    Bei der Einrichtung eines 2.Profils mit nach und nach Übernahme aller CSS und Skripte hat es gerade gute Dienste geleistet und im Zusammenhang mit dem Neustart-Skript und dem Profilordner-Skript viel Zeit eingespart.

    Vielen Dank auch Allen, die ihr mit Tests und Ratschlägen geholfen haben.

    MfG
    Geldhügel

  • Mira_Belle der Link im Script vom Beitrag-Nr.

    führt hier in diesem Thema auf die Seite 4

    Weiss nicht, ob das für dich wichtig ist oder nicht, wollte es mal hier schreiben.

    Dieser Link führt zu dem Script im Beitrag-Nr. #116 also wäre das der richtige Link.

    Mira_Belle
    27. Juli 2023 um 14:19

    "Klug sein hat noch nie einen Menschen an Dummheiten gehindert." Stefan Zweig
    Firefox-Version: 133.0
    Edition: Windows 11 Home (64-Bit-Betriebssystem)
    Version: 23H2

  • Ich habe gerade das Update auf FF 116 durchgeführt. Nun wird mir statt eines Icons nur ein freier Platz angezeigt. Klick darauf lässt das Skript richtig arbeiten. Auch im zweiten Profil ist das so.

    Hat noch jemand dieses Verhalten?


    Habe gerade das Skript gegen das aus #54 getauscht. Da wird der Button richtig angezeigt.

    MfG
    Geldhügel

    Einmal editiert, zuletzt von geldhuegel (2. August 2023 um 00:53) aus folgendem Grund: Ein Beitrag von geldhuegel mit diesem Beitrag zusammengefügt.

  • Hat noch jemand dieses Verhalten?

    Ergänzend dazu.

    Hier hatten wir das Problem schon bemerkt, darum wurde das Skript angepasst zu der Version aus Beitrag Nr. 54.

    2002Andreas
    25. Juli 2023 um 17:47
  • Update

    Version 1.05 vom 27. Juli zeigt kein Symbol mehr an.

    Daher das Skript aktualisiert.

    Mit <3lichem Gruß

    Mira

  • Update

    Version 1.05 vom 27. Juli zeigt kein Symbol mehr an.

    Daher das Skript aktualisiert.

    Wäre interessant zu erfahren, was generell die aktuell funktionierende Variante für Dateipfade/Iconeinbindung in Scripts ist, bzw. was nicht mehr geht und warum. :/

    Ist aber vielleicht ein eigenes Thema, oder zu aufwendig zu erklären.

    Alternativ, könnte es mehr Sinn machen Icons einfach mit CSS einzubetten?

    Mach ich bei den meisten meiner Scripts so.

    Wenn man sich die Button ID aus dem Script nimmt, sollte das doch eigentlich generell klappen, ohne das Theater mit den Dateipfaden im Script?

    zB:

    CSS
    #profileschange-button {
        list-style-image: url("icons/profileschange-button.png") !important;
    }
  • Zur Erklärung!

    Die Parameter von PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));

    funktionieren so nicht mehr, warum auch immer.

    Das kann uns Sören Hentzschel vielleicht erkären.

    Daraus folgt, dass auch style: "list-style-image: url('" + ProfilePath + buttonicon + "');"

    das Icon (Symbol) nicht mehr einbindet.

    Also habe ich den Pfad anders eingebunden,

    Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");,

    und dem entsprechend auch

    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',

    Zu Deinem Vorschlag, die Symbole per CSS einzubinden.

    Kann man machen, ist eventuell, wenn man eben sonst keine oder halt nur wenige Symbole hat,

    eine ganz gute Möglichkeit.

    Nur bei zig CSS-Dateien im Fall der Fälle den Fehler zu finden, ... :/

    Und ich habe gerne alles beisammen.

    Mit <3lichem Gruß

    Mira

  • Nur bei zig CSS-Dateien i

    Nur so ein Gedanke!

    Nicht jeder user hat ja einen Ordner icons im chrome Ordner, sondern evtl. einen Ordner dafür an anderer Stelle.

    Und dann wäre der direkte Pfad eben praktischer.

    Ist ja auch kein Problem das so im Skript zu ermöglichen, wie es in vielen anderen Skripten ja gemacht wurde.

    Und ich habe gerne alles beisammen.

    Praktischer ist das natürlich ;)

  • Die Parameter von PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));


    funktionieren so nicht mehr, warum auch immer.

    Das kann uns Sören Hentzschel vielleicht erkären.

    In der Konsole ausgeführt funktioniert das. Vielleicht muss man im Kontext eines Scripts jetzt etwas importieren, was bisher nicht importiert wurde. Gibt es eine Fehlermeldung in der Konsole, wenn das via Script genutzt wird? Beziehungsweise kannst du den Wert via console.log() im Script in der Konsole ausgeben lassen und zeigen, was der Inhalt in einer Firefox-Version ist, in der das noch funktioniert, und der Inhalt in einer Firefox-Version, in der das nicht mehr funktioniert?

  • Danke für die Erklärung! :)

    Zu Deinem Vorschlag, die Symbole per CSS einzubinden.

    Kann man machen, ist eventuell, wenn man eben sonst keine oder halt nur wenige Symbole hat,

    eine ganz gute Möglichkeit.

    Nur bei zig CSS-Dateien im Fall der Fälle den Fehler zu finden, ... :/

    Und ich habe gerne alles beisammen.

    Kann man so oder so sehen - wenn Icons nur über separates CSS benutzt werden, kann - zumindest momentan - der einzige Fehler eigentlich nur ein nicht existierendes/falsch benanntes oder abgelegtes Icon sein.

    Was das gleiche Problem in der Scriptvariante wäre, aber halt mit dem zusätzlichen Dateipfadgedöns.

    Mir gefällt es auch alles in einer Datei zu haben - andererseits ändere ich auch gerne mal individuelle Icons (Farbe, Deckkraft, Position in der toolbar oder im Überhangmenü, etc.), und dann müsste ich immer in das jeweilige Script rein - das dann auch die entsprechenden Parameter mitbringen müsste.

    Vielleicht sollte ich mir einfach eine separate icons.css anlegen. :/ ;)

  • Weist Du, ich habe eine Symbol.css, die ist ca. 750 Zeilen lang.

    Wenn ich da jetzt auch noch die Symbole für all meine Buttons ablegen würde, ...

    Aber das darf und kann und soll jeder so halten wie er/sie möchte.

    Gerade so, wie jene Person am besten damit umgehen kann und will.

    Sören Hentzschel

    In der Konsole habe ich Fehlermeldungen, aber keine hat mit dem verwendeten Skript zu tun.

    Wie funktioniert das mit dem Log?

    Mit <3lichem Gruß

    Mira

  • Nur bei zig CSS-Dateien i

    Nur so ein Gedanke!

    Nicht jeder user hat ja einen Ordner icons im chrome Ordner, sondern evtl. einen Ordner dafür an anderer Stelle.

    Und dann wäre der direkte Pfad eben praktischer.

    Die Idee dahinter!

    Es ist ja erst einmal egal, wie genau der Ordner, der die Symbole enthält, letzten Endes heißt,

    aber wenn man sein Profil sichert, hat man alles auf einen Schlag beisammen.

    Es steht natürlich jedem frei, seine Dateien auf dem Laufwerk so zu verteilen, wie er/sie es für richtig hält.

    So ist es ja auch bei den verwendeten Skripten, auch die müssen nicht unbedingt in einem Ordner eines Profils sein,

    macht es m.M. aber leichter.

    Mit <3lichem Gruß

    Mira

  • Gerne doch. ;)

    Geht online:

    https://www.base64-image.de/

    Danke.

    Werde ich mir überlegen.

    Erst einmal soll es hier aber um diese blöde nicht mehr funktionierende Pfadangabe gehen,

    Die da wäre:

    JavaScript
    let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
    let buttonicon = "bookmark-hollow.svg";
    let props = {
        style: "list-style-image: url('" + ProfilePath + buttonicon + "');"
    };

    und die ich so habe ändern müssen:

    JavaScript
    let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
    let buttonicon = "bookmark-hollow.svg";
    let props = {
        style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
    };

    Warum funktioniert die erste Variante nicht mehr :?:

    Mit <3lichem Gruß

    Mira

  • Erst einmal nur für dieses Skript!

    Nicht besonders schön, aber es funktioniert erst einmal.

    JavaScript
                let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfad zum Profilordner
                let IconPath = "/chrome/icons/"; // Hier den oder die Ordner angeben, in denen das Symbol liegt
                let buttonicon = "XXX.xxx"; // Name & Dateiendung des anzuzeigenden Symbols. Hier "XXX.xxx" das eigene Symbol inkl. Dateiendung eintragen
                let props = {
                    style: 'list-style-image: url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '");',
                };

    Mit <3lichem Gruß

    Mira

  • Wie funktioniert das mit dem Log?

    console.log('Der Text, der geloggt werden soll') oder eben console.log(variable).

    Zum Thema base64:

    Vermeidung von data:-URIs

    Hintergrundgrafiken können als Grafik auf dem Dateisystem oder als base64-kodierte data:-URI angegeben werden. Letzteres hat natürlich den Vorteil, keine weiteren Dateien zu benötigen, man kann alles mit dem CSS mitgeben. Auf den about:-Seiten von Firefox funktioniert dies in Zukunft aber nicht mehr, da data:-URIs XSS-Sicherheitslücken begünstigen. Und ganz unabhängig davon sind diese um ein vielfaches langsamer und erzeugen mehr CPU-Last, als wenn Grafiken auf dem konventionellen Weg eingebunden werden. Daher ist der Weg, Grafiken zu verwenden, definitiv der bessere Weg.