Button um weiteres Profil zu öffnen

  • JavaScript
    Die Sache ist nur, es ist völlig egal von welchem Profil ich diesen Button "verfolge", 
      if (!profileData.isInUse) {
        let runButton = document.createElement("button");
        document.l10n.setAttributes(runButton, "profiles-launch-profile");
        runButton.onclick = function () {
          openProfile(profileData.profile);
        };
        div.appendChild(runButton);
      }

    Es wird immer auf diese Zeilen verwiesen.

    Wie merkt die Anweisung, welche Profilinstanz geöffnet werden muss? :/

    Ich glaube, es hängt mit diesem div  zusammen.


    Ich werf's nur mal blind in den Raum; in userContent.css kann der Button für ein bestimmtes Profil so angesprochen werden.

    Ob das hier relevant ist - leider keine Ahnung. ;)

    CSS
    #profiles > div > [data-l10n-args='{"name":"DeinProfilName"}'] ~ [data-l10n-id="profiles-launch-profile"] {
        background-color: hsla(188, 33%, 84%, 0.4) !important;
        color: hsla(0, 33%, 50%, 1) !important;
    }
  • Fehlen da nicht ein paar Dinge in deinem Script?

    Bei mir läuft das so nicht.

    Mein Skript öffnet lediglich about:profiles und soll auch nicht mehr tun. Und es funktioniert bei mir. Deines macht auch nichts anderes. Dann kann man sich das Profil aussuchen und starten. Das ist doch sehr komfortabel. Das Skript selbst kann kein Profil automatisch starten, es weiß ja in dem Moment gar nicht, welches Profil es starten soll. Man kann es so erweitern wie beim Speichern-unter-Skript, wo ja im Download-Dialog eine Schaltfläche Speichern angeboten wird, die eine Vorauswahl an Speicherorten zeigt. Das ist aber viel zu umständlich.

    Ü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

  • Fehlen da nicht ein paar Dinge in deinem Script?

    Bei mir läuft das so nicht.

    Mein Skript öffnet lediglich about:profiles und soll auch nicht mehr tun. Und es funktioniert bei mir. Deines macht auch nichts anderes.

    Meins ist nicht meins, nur ein abgewandeltes about:addons Script von hier aus dem Forum, genau wie deines im Prinzip, und natürlich öffnet es nur about:profiles.

    Was sollte es auch sonst machen, steht ja sonst nix drin?

    Lesen kann ich ein Script immerhin. ;)

    Nur funktioniert deins eben bei mir überhaupt nicht als Script, wenn ich den Textinhalt rüberkopiere, im Gegensatz zu so ziemlichen allen anderen Scripten.

    Braucht man da nicht irgendwas mit function etc. im Inhalt?

    Wenn's bei dir klappt ist ja gut, bei mir brauchts den extra function usw. Code.

  • Da machst du etwas beim Kopieren falsch.

    Braucht man da nicht irgendwas mit function etc. im Inhalt?

    Nein, hier brauchst du das nicht. Es soll ja lediglich eine Seite öffnen. Wie gesagt, bei mir funktioniert es und bei 2002Andreas auch. Wie kopierst du denn? Du solltest das immer mit der Schaltfläche oben rechts im Code-Kasten tun. Nicht einfach den Text mit der Maus kopieren. Dann kopierst du auch das Wort JavaScript und die Zeilennummern und machst das Skript dadurch unbrauchbar.

    Ü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

  • Nein, hier brauchst du das nicht. Es soll ja lediglich eine Seite öffnen. Wie gesagt, bei mir funktioniert es und bei 2002Andreas auch. Wie kopierst du denn? Du solltest das immer mit der Schaltfläche oben rechts im Code-Kasten tun. Nicht einfach den Text mit der Maus kopieren. Dann kopierst du auch das Wort JavaScript und die Zeilennummern und machst das Skript dadurch unbrauchbar.

    Das mit dem Kopieren schaffe ich schon. ;)

    Ich hab's aber trotzdem komplett vertrottelt - dein Script funktioniert perfekt - nur setzen alle meine anderen Scripte mit Buttons die Dinger automatisch in die Navbar, vermutlich mit defaultArea: CustomizableUI.AREA_NAVBAR.

    Deins landet im Anpassen Fenster, und muss dann bewegt werden, was zu Kapieren bei mir etwas gedauert hat... ?( ;)

  • Deins landet im Anpassen Fenster, und muss dann bewegt werden, was zu Kapieren bei mir etwas gedauert hat...

    Ich zitiere: ;)

    Ich musste das Symbol erst einmal aus dem Anpassen-Fenster holen.

    Ü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

  • Ein anderer Ansatz!

    Dennoch stecke ich fest.

    Der Button wird angezeigt, beim Betätigen tut sich jedoch nichts.

    Stehe total auf dem Schlauch :!:

    Ich bräucht Hilfe von einem JavaScript Experten.

    Mit <3lichem Gruß

    Mira

  • Bei vielen meiner Versuche habe ich doch glatt vergessen genau das Profil zu definieren, welches gestartet werden soll!

    Aber hier mal ein Fetzen Code.

    Nun habe ich mir von ChatGPT den Code mal erklären lassen.

    Ich werde mich zu einem späteren Zeitpunkt genauer mit dieser Erklärung beschäftigen.

    Mit <3lichem Gruß

    Mira

  • Nun habe ich mir von ChatGPT den Code mal erklären lassen.

    Wenn man falsche Dinge lernen möchte, kann man das tun. Ansonsten rate ich ausdrücklich davon ab. Lies dich besser durch das MDN, wie man es die letzten 18 Jahre seit Gründung auch gemacht hat. Mozilla hat es selbst probiert, Erklärungen zu Code via ChatGPT zu geben. Das Ergebnis war ein großes Echo der Entwickler-Community (um nicht gar von einem Shitstorm zu sprechen), wie viel schlicht und ergreifend nicht stimmt, mit der Folge, dass das Feature abgeschaltet wurde und nicht vor 2024 und weiteren Überarbeitungen wieder eingeführt werden wird. Falls du mehr darüber lesen möchtest:

    Reflections on AI Explain: A postmortem | MDN Blog
    We recently launched a feature called AI Explain, but we have rolled this back for now. In this post, we look into the story behind AI Explain: its…
    developer.mozilla.org

    ChatGPT taugt Stand heute und ohne Nutzung spezifischer Quellen als Kontext nicht für Code-Erklärungen. Gerade wenn man sich selbst nicht als jemand sieht, der sich bereits gut damit auskennt, ist das der falsche Weg, um Dinge zu lernen. Denn dann ist man auch nicht der Lage, richtige von falschen Informationen zu unterscheiden. Und falsche Dinge zu lernen ist schlechter als etwas nicht zu wissen. Denn wenn man weiß, dass man etwas nicht weiß, weiß man zumindest, dass man es recherchieren muss. Wenn man nur glaubt, etwas zu wissen, was aber nicht so ist, führt das zu falschen Annahmen und hält einen viel mehr auf. Und bereits Gelerntes umzulernen ist auch schwieriger als etwas neu zu lernen.

  • Sören Hentzschel

    Danke für Deine Antwort.

    Da ich ja nicht eine komplette Programmiersprache erlernen will, ist wohl für mich an dieser Stelle Schluß!

    Ich habe absolut keine Ahnung wie und wo ich das Richtige in einem meiner Skripts einfügen muss,

    damit einfach eine zweite Instanz mit einem anderen Profil gestartet wird.

    Ärgert mich jetzt etwas, wollte eine schnelle Lösung, is' aber nicht.

    Ergo, Projekt tot, beerdigt und begraben. Schade.

    Muss halt den Weg über about:profiles gehen, aber wenigstens kann ich diese Seite per QuickLinkButton erreichen.


    Nachtrag!

    Ich lasse das Thema noch ein weilchen auf unerledigt stehen,

    die Hoffnung stirbt zuletzt!

    Vielleicht habe ich ja Glück und ein JavaScript-Experte erbarmt sich,

    ändert den Code, oder gibt mir den oder die entscheidenden Tipps.

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (22. Juli 2023 um 13:20) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.

  • Was das MDN angeht, so teile ich deren Einschätzungen. Ich greife fast nur via Websuche auf das MDN zu, ich komme halbwegs zurecht, für Einsteiger ist es eher unübersichtlich. Die angesprochenen Beispiele sind eher rudimentär, als Beispiel "grid", das ich für meinen Extension-Button nutze, musste ich ausprobieren, dafür waren die Beispiele nicht gut genug. Nichtsdesotrotz gibt es nicht viele Quellen bei mir, die als Nachweise dienen oder Syntax, auch wenn ich mir Schnipsel auch von anderen Quellen suche.

    Um auf ein anderes Statement einzugehen. Gewisse Dinge muss man sich hart erarbeiten und dranbleiben. Viel trial&error ist unabdingbar, um zu verstehen.

    Was das weitere Profil angeht, so kann man sich zB an der Portable orientieren, ich denke, Andreas sein Menü beinhaltet nur solche. Wenn das Profil bekannt ist, dürfte sich entweder Batch anbieten, oder eine Anwendung, die das gleiche bewirkt, um ein zweites Profil aufzurufen - ohne Script. Wenn die Lösung nicht in Firefox besteht, dann vielleicht ausserhalb.

    Wir sind keine Beschwerdestelle, hier gibt es nur Lösungen! Meine Glückszahl hier: 93.

  • Ob man es nun einen kleinen Sieg nennen kann, sei mal dahin gestellt.

    Brauche nun nicht mehr über about:profiles gehen, sondern kann direkt das Auswahlfenster aufrufen.

    Der nächste Schritt müsste sein, dass einfach das gewünschte Profil ausgewählt ist (wird)

    und automatisch mit OK bestätigt wird.

    Mit <3lichem Gruß

    Mira

  • Es scheint so, dass das so wie ich mir das dachte nicht funktioniert,

    da das JavaScript auf Funktionen von Windows nicht zugreifen kann.

    Kann man per JavaScript denn z.B. ein anderes Skript starten?

    Vielleicht ein *.ps1 oder eine batch?


    2002Andreas

    Du hast ein JavaScript, aus dem heraus Du anderer Programme starten kannst?

    In Deinem Fall eine weitere Instanz eines portablen Firefox?

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (24. Juli 2023 um 23:15) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.

  • Geschafft!

    Nichts ist unmöglich!

    Was nicht passt, wird passend gemacht!
    .
    Ich habe gewonnen :!:
    .

    Warum ich so austicke, ich habe es geschafft, ob wohl ich von JavaScript nicht wirklich 'ne Ahnung habe!!

    Hier das Skript, das erst einen Button erstellt und dann, wenn man ihn betätigt, eine weitere Instanz

    mit einem bestimmten Profil startet.

    Mit <3lichem Gruß

    Mira

  • Du hast ein JavaScript, aus dem heraus Du anderer Programme starten kannst?

    Ja.

    Die Pfade musst du dir dann anpassen.

  • Super, dankeschön !! :thumbup: :)

    Nur 2 Dinge:

    Der Dateipfad für Mac User, einfach die entsprechende Zeile austauschen:

    Benutzt auf High Sierra, FX im Standard Installationsordner.

    JavaScript
          file.initWithPath("/Applications/Firefox.app/Contents/MacOS/firefox");

    Und ein kleiner Haken: wenn man das zusätzliche Profil schon offen hat, und den Button versehentlich nochmal drückt, gibt es eine Fehlermeldung.

    Wenn man den normalen Button in about:profiles mehrfach drückt, gibt es kein Problem, es geht nur ein neues Fenster auf im zusätzlichen Profil.