Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Copy 2 Clipboard mit Feedback
#1
Hallo,

ich hab nur was kleines - aber ich komme mit meinen rudimentären JS-Kenntnissen leider nicht weiter Blush

Ich möchte gern einen definierten Text in die Zwischenablage nehmen und dem Klicker ein Feedback geben, dass die Zeile nun in der Zwischenablage ist.
Am einfachsten wäre das mit einem kleinem "✓" welcher im Buttontext am Ende mit angezeigt werden sollte, allerdings nur für 1-3 sekunden...
jedoch kann ich bei der Funktion nicht mit "this.innerText" in Verbindung mit einer setTimeout Funktion arbeiten...
Code:
setTimeout("this.innerText = 'Copy ✓'", 3000);
Code:
<script>
function copy2Clipboard(str) {
ta = document.createElement('textarea');
ta.value = str;
document.body.appendChild(ta);
ta.select();
document.execCommand('copy');
document.body.removeChild(ta);

};
</script>

<button onclick="copyStringToClipboard('Lorem ipsum dolor sit amet')">Copy</button>
Zitieren
#2
Hallo @"DSCA"

(11.05.2023, 11:20)DSCA schrieb: jedoch kann ich bei der Funktion nicht mit "this.innerText" in Verbindung mit einer setTimeout Funktion arbeiten...

Du kannst hier nicht mit "this.innerText" arbeiten, denn das this Objekt is in diesem Fall das Globale Objekt.
Du musst also den Button explizit selektieren, bevor du den Text darauf anpassen kannst.

(Kleiner Tip: Verwende in der "setTimeout" lieber eine Funktion anstatt einen Funktionskörper als Sting. Das ist sicherer und JavaScript kann das auch besser optimieren.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste