Ankündigung

Einklappen
Keine Ankündigung bisher.

JavaScrips + TextArea + Copy Button onclick

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JavaScrips + TextArea + Copy Button onclick

    Hallo Zusammen,

    ich verzweifle gerade an einem Script... Folgendes Szenario:
    Ich habe eine Tabelle mit 3 Spalten und 8 Zeilen mit folgendem Aufbau:
    Bezeichnung | Text (in einem Textareafeld) | Button

    Nun möchte ich, wenn auf den dazugehörigen Button geklickt wird, dass der Inhalt der Textarea ins Clipboard kopiert wird.
    Mit einem fest definierten Feld kappt das Problemlos, ich will aber natürlich nicht für jede Zeile eine eigene Funktion schreiben die bis auf den zu kopierenden Feldname alle gleich sind.

    Im Code mit dem fest definierten Feld sieht das bisher so aus:
    HTML-Code:
    <button id="testfeld" type="button" onclick="copyToClipboard()">Copy</button>
    Code:
    <script type="text/javascript">
    function copyToClipboard() {
      /* Get the text field */
      var copyText = document.getElementById("testfeld");
    
      /* Select the text field */
      copyText.select();
      copyText.setSelectionRange(0, 99999); /* For mobile devices */
    
      /* Copy the text inside the text field */
      document.execCommand("copy");
    
      /* Alert the copied text */
      /* alert("Copied the text: " + copyText.value); */
    }
    </script>

    Zu testen habe ich bereits eine weiter Funktion eingebaut um auszulesen, welcher Button geklicked wurde:
    Code:
      function get_click(clicked_id)
      {
        var clicked_id =
          alert(clicked_id);
      }
    Im Prinzip muss ich ja nur dafür sorgen, dass ich die clicked_id in eine Variable schreibe und diese auf (mit einer if-Funktion?) auf die ID der Textarea matche und in der Funktion aufrufe.

    Leider will das nicht so wie ich will... Ich bin für Vorschläge offen

    LG r4

  • #2
    Vergiss das onclick-Attribut. Hänge mit querySelectorAll in Verbindung mit forEach an jeden Button einen click-Eventhandler. Über das Klickziel bzw. den Button kannst du dich dann z.B. über parentElement und querySelector zur dazugehörigen Textarea durchhangeln und darauf den bisherigen Code anwenden (wobei select() *und* setSelectionRange() nicht nötig zu sein scheinen, beide Methoden werden von allen Browsern unterstützt womit eine reicht). Und vergiss nicht die Buttons standardmäßig auszublenden und nur bei aktiviertem Javascript einzublenden - sonst hast du bei deaktiviertem JS funktionslose Buttons.

    Kommentar


    • #3
      danke für die Tipps, ich habs eben mal überflogen aber das ist dann glaub eher was für morgen

      Kommentar


      • #4
        kurzes update tk1234
        durch eine interne umstellung wird das so nun doch nicht mehr benötigt. Dennoch vielen Dank für deine Hilfe

        Kommentar

        Lädt...
        X