Claus: text per button in textfeld einfügen

Hallo spiele das o-game www.die-staemme.de
Dieses Spiel gestattet dem Spieler in einer sog. Schnelleiste diverse befehle via JavaScript ausführen zu lassen.

BSP.:
javascript:Array.prototype.contains = function(obj) {var i, listed = false;for (i=0; i<this.length; i++) {if (this[i] === obj) {listed = true;break;}}return listed;};function getGameDoc() {getdoc = window.document;if(! getdoc.URL.match('game.php')) {for(var i=0; i<window.frames.length; i++) {if(window.frames[i].document.URL.match('game.php')) {getdoc = window.frames[i].document;}}}return getdoc;};units = Array('axe','light','ram','marcher','catapult');doc = getGameDoc();form = doc.units;inputs = form.getElementsByTagName('input');for (var i=0; i<inputs.length; i++) {if (inputs[i].type == 'text') {if (units.contains(inputs[i].name)) {next = inputs[i].nextSibling;do {next = next.nextSibling;} while (next.nodeType != 1);s = next.firstChild.nodeValue;insertUnit(form.elements[inputs[i].name], next.firstChild.nodeValue.replace(/(/g, "").replace(/)/g, ""));}}}

Nun würde ich gerne mit einem ähnlichen Script einen Text "XYZ" in ein ausgewähltes variables textfeld einfügen.
Allerdings konnte ich über Google nichts zu diesem Thema finden und frag deshalb nun hier.

Der text ist kein Fließtext sondern eine aufzählung à la
1.

2.

3. usw

Ist das überhaupt möglich und wenn ja wie?

  1. Hallo,

    Nun würde ich gerne mit einem ähnlichen Script einen Text "XYZ" in ein ausgewähltes variables textfeld einfügen.

    Das Schema lautet:
    InputElementObjekt.value = "XYZ";
    http://de.selfhtml.org/javascript/objekte/elements.htm

    Ok, das hilft dir wahrscheinlich nicht weiter, aber genaueres kann ich dir nur sagen, wenn ich die genauen Umstände kenne.

    Formularfelder kannst du in der Regel über das Formular, zu dem sie gehören, und über dessen Namen ansprechen

    Z.B.

    document.forms.formular1.elements.feld1

    für den Fall

    <form name="formular1">
    <p><input name="feld1"></p>
    </form>

    Dann gibt es noch weitere Möglichkeiten, wie du das Elementobjekt in JavaScript zu fassen bekommen kannst, da musst du vom gegebenen HTML-Code ausgehen. Wie sieht der relevante Code aus? (Was heißt »variables« Textfeld?)

    Mathias

    1. Hallo,

      Nun würde ich gerne mit einem ähnlichen Script einen Text "XYZ" in ein ausgewähltes variables textfeld einfügen.

      Das Schema lautet:
      InputElementObjekt.value = "XYZ";
      http://de.selfhtml.org/javascript/objekte/elements.htm

      Ok, das hilft dir wahrscheinlich nicht weiter, aber genaueres kann ich dir nur sagen, wenn ich die genauen Umstände kenne.

      Jep ich kann damit rein gar nichts anfangen *g*

      Formularfelder kannst du in der Regel über das Formular, zu dem sie gehören, und über dessen Namen ansprechen

      Z.B.

      document.forms.formular1.elements.feld1

      für den Fall

      <form name="formular1">
      <p><input name="feld1"></p>
      </form>

      Dann gibt es noch weitere Möglichkeiten, wie du das Elementobjekt in JavaScript zu fassen bekommen kannst, da musst du vom gegebenen HTML-Code ausgehen. Wie sieht der relevante Code aus? (Was heißt »variables« Textfeld?)

      Variables Textfeld heist:
      das ich durch klicken auf den Button immer den selben Effeckt haben möchte, der Text wird in das aktuell durch den cursor ausgewählte textfeld eingefügt...

      BSP. wenn ich eine Nachricht versenden will um unterstützung anzufordern, dann klicke ich den button und hab im Textfeld einen Text XYZ stehen, wenn ich aber im forum bin und den button klicke sollte da auch XYZ stehen *g*

      Wie sieht der relevante code aus?

      Hm gute frage, bin ein noob was das angeht, den oberen code hab ich mir auch nur abgewandelt aus anderem...

      ich hab lediglich zugriff auf die css datei und kann mir halt den Quelltext im moment des schreibens einer nachricht anzeigen lassen...

      der folgende auszug sollte den entsprechenden Teil enthalten alles andere war soweit ich das im überfliegen erkennen konnte nur body und der obere Teil der seite *g*
      wenn du alles brauchst aber auch kein ding

      </table>

      </td><td valign="top"><table><tr><td valign="top">

      <form method="post" action="game.php?village=127278&amp;screen=mail&amp;mode=in&amp;view=5683281&amp;action=answer&amp;read_time=1202431311&amp;h=2a06">
      <table class="vis">
       <tr>
        <th width="140">Betreff</th>

      <th width="300">Bewerbung </th>
       </tr>
       <tr>
        <td>Gesprächspartner</td>
        <td><img src="graphic/new_mail.png" title="neu" alt="" />
          <a href="game.php?village=127278&amp;screen=info_player&amp;id=1162412">tom-tel</a></td>
       </tr>

      <tr>
        <td>Gruppe:</td>
        <td><a href="game.php?village=127278&amp;screen=mail&amp;mode=in&amp;group_id=0" id="igm_group">Posteingang</a>
         <a href="javascript:toggle_igm_groups();"><img src="graphic/villages.png" alt="Verschieben" title="Verschieben" /></a>
         <table id="igm_groups">
          <tr>
           <td><a href="javascript:set_group(0);">Posteingang</a></td>

      </tr>
          <tr>
           <td><a href="javascript:set_group(2613);">Schatz</a></td>
          </tr>
          <tr>
           <td><a href="javascript:set_group(2614);">Fusion</a></td>
          </tr>
          <tr>

      <td><a href="javascript:set_group(3123);">bewerbungen</a></td>
          </tr>
          <tr>
           <td><a href="javascript:set_group(3124);">stammesinterna</a></td>
          </tr>
         </table>
       </tr>

      <tr id="action_row">
        <td colspan="2">
         <table class="vis" width="100%">
          <tr>
          <td width="25%" align="center"><a href="javascript:answer_show();">Antworten</a></td>     <td width="25%" align="center"><a href="game.php?village=127278&amp;screen=mail&amp;mode=in&amp;action=forward_redirect&amp;read_time=1202431311&amp;view=5683281&amp;h=2a06">Weiterleiten</a></td>
           <td width="25%" align="center"><a href="game.php?village=127278&amp;screen=mail&amp;mode=in&amp;action=delete&amp;read_time=1202431311&amp;view=5683281&amp;h=2a06">Löschen</a></td>
           <td width="25%" align="center"><a href="game.php?village=127278&amp;screen=mail&amp;mode=export&amp;igm_id=5683281">Exportieren</a></td>

      </tr>
         </table>
        </td>
       </tr>  <tr id="answer_row1">
        <td colspan="2">
         <input type="hidden" name="igm_id" value="5683281" />
         <textarea name="text" cols="55" rows="5"></textarea>
        </td>

      </tr>
       <tr id="answer_row2">
        <td>
         <a href="javascript:resizeIGMField('bigger');">&raquo; Feld vergrößern</a><br /><a href="javascript:resizeIGMField('smaller');">&raquo; Feld verkleinern</a>
        </td>
        <td>
         <input type="submit" name="preview" value="Vorschau" /> <input type="submit" name="answer" value="Antworten" />

      </td>
        <script type="text/javascript">
        //<![CDATA[
          gid('answer_row1').style.display = 'none';
        gid('answer_row2').style.display = 'none';
          //]]>
        </script>
       </tr>

      <tr>
        <td colspan="2">
         <div class="post"><div class="igmline"><span class="author"><a href="game.php?village=127278&amp;screen=info_player&amp;id=1134798">rettahdameht</a></span> <span class="date">heute um 01:11 Uhr</span></div><div class="text">wieder mal einer!<br />

      TEXT TEXT TEXT<br />
      <br />
      <i>Diese Nachrichten wurden von rettahdameht weitergeleitet.</i></div></div>
         <div class="post"><div class="igmline"><span class="author"><a href="game.php?village=127278&amp;screen=info_player&amp;id=1134798">rettahdameht</a></span> <span class="date">heute um 01:11 Uhr</span></div><div class="text">ich werde die anfrage an den rest des stammes weiterleiten, dann werd ich dir sagen ob du aufgenommen wirst oder nicht</div></div>
         <div class="post"><div class="igmline"><span class="author"><a href="game.php?village=127278&amp;screen=info_player&amp;id=412264">lord niklas 1</a></span> <span class="date">heute um 00:35 Uhr</span></div><div class="text">sers rettahdameht,<br />

      TEXT TEXT TEXT</div></div>
        </td>

      </tr>
        <tr id="action_row2">
        <td colspan="2">
         <table class="vis" width="100%">
          <tr>
          <td width="25%" align="center"><a href="javascript:answer_show();">Antworten</a></td>     <td width="25%" align="center"><a href="game.php?village=127278&amp;screen=mail&amp;mode=in&amp;action=forward_redirect&amp;read_time=1202431311&amp;view=5683281&amp;h=2a06">Weiterleiten</a></td>
           <td width="25%" align="center"><a href="game.php?village=127278&amp;screen=mail&amp;mode=in&amp;action=delete&amp;read_time=1202431311&amp;view=5683281&amp;h=2a06">Löschen</a></td>

      <td width="25%" align="center"><a href="game.php?village=127278&amp;screen=mail&amp;mode=export&amp;igm_id=5683281">Exportieren</a></td>
               </tr>
         </table>
        </td>
       </tr> <tr>
        <td colspan="2" align="center"><a href="game.php?village=127278&amp;screen=mail&amp;mode=block&amp;action=block_id&amp;id=412264&amp;h=2a06">Absender blockieren</a>&nbsp;&nbsp;&nbsp;<a href="game.php?village=127278&amp;screen=mail&amp;mode=affront&amp;igm_id=5683281">Beleidigung melden</a></td>
       </tr>

      </table>
      </form>

      </td><td valign="top">

      </td></tr></table>

      <script type="text/javascript">
      //<![CDATA[

      function answer_show() {
       gid('answer_row1').style.display='';
       gid('answer_row2').style.display='';
       gid('action_row').style.display='none';
      }

      gid('igm_groups').style.display = 'none';

      function toggle_igm_groups()
      {
       if(gid('igm_groups').style.display == '') {
        gid('igm_groups').style.display = 'none';
       } else {
        gid('igm_groups').style.display = '';
       }
      }

      function set_group(group_id)
      {
       data = 'group_id=' + group_id;
       req = ajaxSync('game.php?village=127278&screen=mail&action=group_igm&igm_id=5683281&h=2a06', data);
       text = req.responseText.split(/>/);
       setText(gid('igm_group'), text[1]);
       gid('igm_group').setAttribute('href', gid('igm_group').getAttribute('href').replace(/group_id=(\d+)/, 'group_id=' + text[0]));
       toggle_igm_groups();
      }

      //]]>
      </script>

      </td></tr></table><p align="right" style="font-size: 7pt; margin-top:0px; margin-bottom:0px">generiert in 64ms
      Serverzeit: <span id="serverTime">1:41:51</span></p>
      </td>
      </tr>
      </table>

      <script type="text/javascript">startTimer();</script>
      <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
      </script>
      <script type="text/javascript">
      _uacct = "UA-1897727-2";
      urchinTracker();
      </script>
      </body>
      </html>

      1. Hallo,

        Variables Textfeld heist:
        das ich durch klicken auf den Button immer den selben Effeckt haben möchte, der Text wird in das aktuell durch den cursor ausgewählte textfeld eingefügt...

        Ok, das machts klarer.

        Allerdings ist es nicht so trivial, das »gerade fokussierte Textfeld« mit JavaScript anzusprechen.

        Einige Browser (IE zumindest, Firefox aber noch nicht) kennen document.activeElement, darin ist dann das input-Elementobjekt gespeichert, dann kann man das besagte Schema zum Ändern des Feldwertes benutzen.

        Das Dumme ist aber, dass das Eingabefeld, wenn man den Bookmarklet aktiviert, den Fokus verliert. (Soweit ich das richtig in Erinnerung habe.)

        Auf die Schnelle weiß ich da keine browserübergreifende Lösung, aber wenn ich Zeit habe, werde ich mal experimentieren. Vielleicht hat derzeit noch jemand anderes eine zündende Idee.

        Mathias

        1. danke schonmal für deine bemühungen!
          es wäre auch ok wenn der button den Text automatisch in genau das nachrichtenfenster einfügt....

          und das script muss auch keine seite ansteueren sondern soll nur funktionieren wenn ih auf der passenden seite bin, ähnlich wie das script das ich zum famen verwende, wenn ich auf meinem Versammlunsgplatz bin, dann drücke ich auf diesen button und er fügt mir automatisch bestimmte einheiten in die jeweiligen felder...

          (das script das ich zu anfang reingepostet habe)

          1. Hallo,

            also wenn es nur um diese textarea geht:

            <textarea name="text" cols="55" rows="5"></textarea>

            Die kannst du auch über document.getElementsByName("text") zu fassen bekommen.
            Wenn das das einzige Element auf der Seite mit name="text" ist, ist es das erste Element in der von diesem Methodenaufruf zurückgegebenen Knotenliste; also kann man es mit document.getElementsByName("text")[0] ansprechen.

            Dann wie gesagt .value = "...";

            Alternativ kannst du dir das hier anschauen:
            http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/

            Soweit ich das noch im Kopf habe fügt dieses Script Text ins aktuell fokussierte Eingabefeld ein.

            Mathias

            1. Hallo,

              also wenn es nur um diese textarea geht:

              <textarea name="text" cols="55" rows="5"></textarea>

              Die kannst du auch über document.getElementsByName("text") zu fassen bekommen.
              Wenn das das einzige Element auf der Seite mit name="text" ist, ist es das erste Element in der von diesem Methodenaufruf zurückgegebenen Knotenliste; also kann man es mit document.getElementsByName("text")[0] ansprechen.

              Dann wie gesagt .value = "...";

              Könntest du mir fddas ganze ding auch fertig ausformulieren?
              ich hab von java Script wie gesagt keine Anhung und momentan mit css noch ein bischen zu kämpfen (wollte mir danach erstmal html vornehmen und dann erst java)

              Alternativ kannst du dir das hier anschauen:
              http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/

              Soweit ich das noch im Kopf habe fügt dieses Script Text ins aktuell fokussierte Eingabefeld ein.

              selbst damit komm ich leider nicht weiter *g*
              vorallem ist das ja wieder über html gemacht, oder??

              Wirklich nochmal ein riesen dankeschön für deiene Mühen Matthias, aber bdenke bitte, dass vor die eun absoluter Noob steht was Java angeht *g*