Ich habe keine Kenntnisse in JavaScript, aber ich habe es geschafft, diesen Code mithilfe von Bits und Bolzen aus verschiedenen Antworten zum Stapelüberlauf zusammenzusetzen. Es funktioniert einwandfrei und gibt über ein Warnfeld ein Array aller ausgewählten Kontrollkästchen in einem Dokument 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, benutze 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 beim Klicken auf die btn_test
Schaltfläche das Ausgabearray checkbx
in die Zwischenablage kopiert wird. Ich habe versucht hinzuzufügen:
checkbx = document.execCommand("copy");
oder
checkbx.execCommand("copy");
am Ende der Funktion und dann aufrufen wie:
<button id="btn_test" type="button" onclick="getSelectedCheckboxes('my_id')">Check</button>
Aber es funktioniert nicht. Es werden keine Daten in die Zwischenablage kopiert.
.execCommand('copy')
kopiert eine Auswahl auf einer Seite (falls in den Benutzereinstellungen zulässig). Sie können versuchen, das Array zu stringifizieren, dann einen Textbereich damit zu füllen, alle aus dem Textbereich auszuwählen und dann mit zu kopierenexecCommand
. Erfassen Sie beim Einfügen das Ereignis und analysieren Sie den Inhalt zurück in das Array.