Я не знаю JavaScript, но мне удалось собрать этот код вместе с помощью битов и болтов из различных ответов на переполнение стека . Он работает нормально, и он выдает массив всех выбранных флажков в документе через окно предупреждения.Копирование вывода переменной JavaScript в буфер обмена
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;
}
И называть его я использую:
<button id="btn_test" type="button" >Check</button>
<script>
document.getElementById('btn_test').onclick = function() {
var checkedBoxes = getSelectedCheckboxes("my_id");
alert(checkedBoxes);
}
</script>
Теперь я хотел бы изменить его так, когда я нажимаю кнопку btn_test
выходной массив checkbx
копируется в буфер обмена. Я попытался добавить:
checkbx = document.execCommand("copy");
или
checkbx.execCommand("copy");
в конце функции и затем вызвать его люблю:
<button id="btn_test" type="button" onclick="getSelectedCheckboxes('my_id')">Check</button>
Но это не работает. Данные не копируются в буфер обмена.
Я сомневаюсь, что вы можете скопировать необработанный объект JS в буфер обмена. '.execCommand ('copy')' копирует выделение на странице (если разрешено в настройках пользователя). Вы можете попытаться стягивать массив, затем заполнить его текстовой областью, выбрать все из textarea, а затем скопировать с помощью 'execCommand'. При вставке, захвате события и анализе содержимого обратно в массив. – Teemu
OK .. Спасибо за указание на направление. Я думал, что это, вероятно, невозможно, так как похоже, что он не возвращал прямых результатов поиска. Поэтому, я думаю, я постараюсь сделать то, что вы предложили. – harman
Возможно, это глупый вопрос, но где/как вы вставляете необработанный объект JS? – Teemu