클립보드로 복사하기 – Pure JavaScript

qpress 2020년 2월 2일 31

JavaScript에서 문자열(String)을 Clipboard로 저장(복사)하는 간단한 함수가 내장되어 있을 것으로 생각했는데, 찾지 못했다.(있을 수도….)

Textarea 에서 마우스로 선택된(Select) 문자열이 있을 경우 간단히 ‘document.execCommand(‘copy’)’ 함수를 사용하면 되지만, JavaScript
코드 상의 문자열을 Clipboard로 저장 하려면, 별도의 작업이 필요하다.
이에 대해 잘 정리된 함수를 아래에서 참고 할 수 있다.

function copyStringToClipboard (str) {
   // Create new element
   var el = document.createElement('textarea');
   // Set value (string to be copied)
   el.value = str;
   // Set non-editable to avoid focus and move outside of view
   el.setAttribute('readonly', '');
   el.style = {position: 'absolute', left: '-9999px'};
   document.body.appendChild(el);
   // Select text inside element
   el.select();
   // Copy text to clipboard
   document.execCommand('copy');
   // Remove temporary element
   document.body.removeChild(el);
}

// Usage example:
copyStringToClipboard("abc123");