GOOGLE ADS

Montag, 18. April 2022

Kopieren Sie die Ausgabe einer JavaScript-Variablen in die Zwischenablage

Ich habe keine Ahnung von JavaScript, aber ich habe es geschafft, diesen Code mit Bits und Bolts aus verschiedenen Stack Overflow-Antworten zusammenzusetzen. Es funktioniert OK und gibt ein Array aller ausgewählten Kontrollkästchen in einem Dokument über ein Warnfeld aus.

function getSelectedCheckboxes(chkboxName) {
var checkbx = [];
var chkboxes = document.getElementsByName(chkboxName);
var nr_chkboxes = chkboxes.length;
for(var i=0; i<nr_chkboxes; i++) {
if(chkboxes[i].type == 'checkbox' && chkboxes[i].checked == true) checkbx.push(chkboxes[i].value);
}
return checkbx;
}

Und um es zu nennen, verwende ich:

<button id="btn_test" type="button" >Check</button>
<script>
document.getElementById('btn_test').onclick = function() {
var checkedBoxes = getSelectedCheckboxes("my_id");
alert(checkedBoxes);
}
</script>

Jetzt möchte ich es so ändern, dass das Ausgabearray in die Zwischenablage kopiert wird, wenn ich auf die btn_testSchaltfläche checkbxklicke. Ich habe versucht hinzuzufügen:

checkbx = document.execCommand("copy");

oder

checkbx.execCommand("copy");

am Ende der Funktion und rufe sie dann so auf:

<button id="btn_test" type="button" onclick="getSelectedCheckboxes('my_id')">Check</button>

Aber es funktioniert nicht. Es werden keine Daten in die Zwischenablage kopiert.


Lösung des Problems

function copyToClipboard(text) {
var dummy = document.createElement("textarea");
// to avoid breaking orgain page when copying more words
// cant copy when adding below this code
// dummy.style.display = 'none'
document.body.appendChild(dummy);
//Be careful if you use texarea. setAttribute('value', value), which works with "input" does not work with "textarea". – Eduard
dummy.value = text;
dummy.select();
document.execCommand("copy");
document.body.removeChild(dummy);
}
copyToClipboard('hello world')
copyToClipboard('hello\nworld')

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...