Baru-baru ini saya mengusahakan projek bahagian hadapan, di mana terdapat keperluan untuk menyalin terus nilai-nilai dalam input atau kawasan teks ke papan tampal melalui butang. Di bawah, editor akan berkongsi dengan anda idea dan kod pelaksanaan saya, dan anda boleh memperkenalkannya terus ke dalam projek.
Kod khusus adalah seperti berikut:
function copyToClipboard(elem) { // create hidden text element, if it doesn't already exist var targetId = "_hiddenCopyText_"; var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA"; var origSelectionStart, origSelectionEnd; if (isInput) { // can just use the original source element for the selection and copy target = elem; origSelectionStart = elem.selectionStart; origSelectionEnd = elem.selectionEnd; } else { // must use a temporary form element for the selection and copy target = document.getElementById(targetId); if (!target) { var target = document.createElement("textarea"); target.style.position = "absolute"; target.style.left = "-9999px"; target.style.top = "0"; target.id = targetId; document.body.appendChild(target); } target.textContent = elem.textContent; } // select the content var currentFocus = document.activeElement; target.focus(); target.setSelectionRange(0, target.value.length); // copy the selection var succeed; try { succeed = document.execCommand("copy"); } catch(e) { succeed = false; } // restore original focus if (currentFocus && typeof currentFocus.focus === "function") { currentFocus.focus(); } if (isInput) { // restore prior selection elem.setSelectionRange(origSelectionStart, origSelectionEnd); } else { // clear temporary content target.textContent = ""; } return succeed; }
Kita boleh memanggil kaedah ini secara langsung seperti ini:
copyToClipboard(document.getElementById("name"));
Dengan cara ini, nilai dengan nama id dimasukkan ke dalam papan tampal.
Editor akan memperkenalkan anda kepada kod JavaScript untuk menyalin kandungan ke papan penampal di sini.