Eingabefeld für Firefox

  • Hallo,
    ich bin gerde dabei ein Plugin für den firefox zu programmieren habe es auch schon soweit fertig, doch habe ich ein Problem.Damit es auch andere User nutzen können brauche ich im menü einen Link wo ein Eingabefeld aufgeht und der user seinen usernamen eingeben kann.Dann sollte der Username in der datei common.js gespeichert werden, das sollte dann z.b. so dastehen
    $username='gespeicherterName';.
    mit meinem Namen klappt das schon doch wie soll ein anderer User da seinen Namen reinbekommen, wenn das plugin installiert ist?
    Ich hoffe ihr könnt mir dabei helfen.

  • Ich denke mal du meinst eine Erweiterung ?

    Für den Fall sind Erweiterungen eh User-Profil-abhängig.

    Sprich ein anderer User/Profil hat auch eine neue
    common.js.

    Oder meinst du gar eine seperate User-Einstellung pro Profil.
    Also ein Profil im Profil :)

    ...:AOD:...

    HP Chromebook 15a-nb0225ng, i3N-305, 8 GB LPDDR5-4800 MHz RAM (integriert), 256GB UFS, - chromeOS 139 (Stable Channel) - Linux Debian Bookworm: Firefox Nightly, Beta und Main Release (Mozilla PPA), Android 13: Firefox Nightly und Firefox (Main Release) - Thunderbird 140.2.0esr

    Smartphone - Firefox Main Release, Firefox Nightly

  • nein die sache is so,
    ich habe jetzt ein plugin oben in der obersten leiste bei Datei-Bearbeiten-etc.
    mit diesem plugin oder erweiterung kann man auf einer Seite statistiken abrufen. Damit aber jeder nach dem installieren seine eigene Statistik auf der Seite abrufen kann muss er ja seinen Usernamen eingeben können und dieser soll gespeichert werden. mann kann natürlich auch seinen UN auf der seite direkt eingeben. doch dann brauch ich auch keine erweiterung oder Plugin, dann kann ich die seite auch weiter aus meinen Lesezeichen laden und dann auf die seite gehen. ich kann ja meine Statistik schon aufrufen hab meinen Namen ja auch manuell eingeben, doch was nützt ein anderen User mein Username er soll bzw. will ja seine Statistik sehen und nicht meine.

  • Dann speicher die Statistik-Informationen doch immer im UserProfil ab.

    Dann brauchst du auch keine User-Abfrage.

    ...:AOD:...

    HP Chromebook 15a-nb0225ng, i3N-305, 8 GB LPDDR5-4800 MHz RAM (integriert), 256GB UFS, - chromeOS 139 (Stable Channel) - Linux Debian Bookworm: Firefox Nightly, Beta und Main Release (Mozilla PPA), Android 13: Firefox Nightly und Firefox (Main Release) - Thunderbird 140.2.0esr

    Smartphone - Firefox Main Release, Firefox Nightly

  • also im menücode sieht der Link so aus:.

    <menuitem class="menuitem-iconic" label="Gesamtspielzeit" onclick="statistik_open(event, 'http://link zur Seite/'+$playername+'+stat.php');" oncommand="statistik_open(null, 'http://link zur Seite/'+$playername+'+stat.php');" />

    und in der Datei common.js steht dann halt
    $playername='mein Name';

    doch wie bekommt z.B. mein kumpel seinen Namen in die common.js datei wenn alles installiert is?

    Es muss doch eine möglichkeit geben das ich einen Menüpunkt in Form von:
    <menuitem class="menuitem-iconic" label="Config" onclick="playername_write(event);" oncommand="playername_write(event);" />

    erstelle,und dann eine eingabezeile auf geht wo man seinen Namen einträgt und dieser dann in common.js gespeichert wird.

    Die Funktion habe ich mir in etwa so gedach:

    function playername_write()
    {
    String common.js = "playername aus der eingabe\r\n";
    FileWriter f1;

    try {
    f1 = open FileWriter("common.js");
    f1.write(Playername aus der eingabe);
    f1.close();
    } catch (IOException e) {
    System.out.println("Fehler beim Erstellen der Datei");
    }
    }

  • also ein eingabefeld in form von:
    <toolbaritem persist="width">
    <menulist editable="true" flex="1"
    minwidth="100" width="250"
    onkeypress="if(event.which == 13) { function playername_write(event, 'common.js'); }">
    </menulist>
    </toolbaritem>
    währe auch gut, muss ja nicht unbedingt über ein menülink ein fenster mit einem Eingabefenster aufgehen,doch wenn ich das so mache kann ich nicht in das feld schreiben.
    der code stammt aus dem Tutorial von Born Geek für die Googlebar.

  • also ich weiß ja nicht, was du mit deiner common.js hast, aber wie du das Fenster öffnest hab ich dir schon verlinkt (bloß blöd, dass MozillaZine grad Offline ist, vllt. hilft solange aber der XulPlanet weiter). Wie du Speicherst steht wieder in der MozillaZine KnowledgeBase, ein Artikel, der nichst so in die Tiefen geht ist wieder auf dem XulPlanet zu finden. Dabei ist aber zu beachten, dass ein String nicht mit get/setCharPref gelesen/-schrieben werden sollte, da dann nur (ich glaub) ASCII und kein Unicode verwendet werden kann. Stattdessen sollte man get/setComplexValue verwenden, was dort nicht mal erwähnt wird.

  • hallo,
    ja das mit dem Eingabefeld war schon klar,doch wie übergebe ich die eingabe am einfachsten an die datei. hier mal der Code vieleicht weis einer wo fehler liegt.
    function UserSave()
    {
    var prompts = Components.classes["@http://mozilla.org/embedcomp/prompt-service;1"]
    .getService(Components.interfaces.nsIPromptService);
    var input = {value: "Spielername"};
    var check = {value: true};
    result = prompts.prompt(window, "Spielername Eingabe", "Gib deinen Spielernamen ein.", input, "", check);
    // input.value is the string user entered
    // check.value indicates whether or not the checkbox is checked
    // result - whether user clicked OK (true) or Cancel

    // |file| is nsILocalFile
    // 1. Write path to prefs
    var prefs = Components.classes["@http://mozilla.org/preferences-service;1"]
    .getService(Components.interfaces.nsIPrefService)
    .getBranch("extensions.myext.");
    prefs.setComplexValue("", Components.interfaces.nsILocalFile, file);

    // 2. Read path from prefs
    var file = prefs.getComplexValue("", Components.interfaces.nsILocalFile);
    }
    oder bin ich damit auf dem falschen Weg?

  • was ist indemfall der einstellungsname habe es mit:
    input
    var.input
    $spielername
    input.Value
    versucht, bekomme aber immer die Fehlermeldung
    (die anweisung 0x0049aa9 verweist auf den Spericher 0x0000000 der Vorgang "read" konnte nicht durchgeführt werden) :-??
    oder hab ich noch ne möglichkeit übersehen?

  • Erstmal fetten dank für deine Zeit und Mühe Dr.Evil!!
    ich drollo hätte ma richtig kucken sollen!!
    hab jetzt deinen Code übernommen,funz trotzdem nich.
    EINSTELLUNGSNAME is doch $playername oder nich.
    und was hat es mit Example1 und Example2 auf sich?

  • O.K. so weit so gut jetzt steht es in der about:config
    extensions.statbrows.$playername-->vom Benutzer festgelegt-->string-->junglist79
    doch wie übergebe ich den wert aus der about:config an den Link in meiner Erweiterung habe da bei MozillaZine KnowledgeBase was von User.js gelesen.

    der link sieht immer noch so aus
    <menuitem class="menuitem-iconic" label="Gesamtspielzeit" onclick="statistik_open(event, 'http://link zur Seite/'+$playername+'+stat.php');" oncommand="statistik_open(null, 'http://link zur Seite/'+$playername+'+stat.php');" />

  • im menuitem:

    Code
    statistik_open(null, 'http://link zur Seite/'+statistik_getPlayerName()+'+stat.php');

    im Haupt-Script: