Programming/JavaScript

JavaScript 클립보드에 복사기능 구현

d-e-v-j 2024. 8. 26. 02:00
반응형

주소, 계좌번호등 웹상에서 클릭시 클립보드에 복사하는 기능을 구현해야하는 일들이 있다.

JavaScript를 사용하여 간단하게 하는 방법을 알아보자


1. HTML 버튼 추가

복사 기능을 시작 할 버튼을 추가(버튼외에 여러 방법으로도 가능)

<!-- 복사할 값이 들어있는 요소 -->
<input type="text" value="여기에 복사할 내용을 입력하세요" id="copyText">

<!-- 클릭할 버튼 -->
<button onclick="copyToClipboard()">클립보드에 복사</button>

 

2.JavaScript 함수 구현

위에서 생성한 버튼 클릭히 실행할 함수를 구현한다.

<script>
function copyToClipboard() {
    // 복사할 텍스트를 저장하고 있는 요소를 찾습니다.
    var copyText = document.getElementById("copyText");

    // 텍스트 필드를 선택합니다.
    copyText.select();
    copyText.setSelectionRange(0, 99999); // 모바일 기기에서 사용하기 위함

    // 선택한 텍스트를 클립보드에 복사합니다.
    document.execCommand("copy");

    // 사용자에게 텍스트가 복사되었다는 것을 알려줍니다.
    alert("클립보드에 복사되었습니다: " + copyText.value);
}
</script>

 

모던 브라우저용 코드 

이 코드는 더 안전하고, 프로미스 기반으로 에러 핸들링이 가능하다.

<script>
function copyToClipboard() {
    // 복사할 텍스트를 저장하고 있는 요소의 값을 가져옵니다.
    var copyText = document.getElementById("copyText").value;

    // 클립보드 API를 사용하여 텍스트를 클립보드에 복사합니다.
    navigator.clipboard.writeText(copyText).then(function() {
        alert("클립보드에 복사되었습니다: " + copyText);
    })
    .catch(function(err) {
        console.error('클립보드 복사에 실패했습니다: ', err);
    });
}
</script>

이렇게 간단한 코드로 클립보드에 복사가 가능하다. document 코드보다는 navigator를 사용하여 코드를 구현해보자.

728x90
반응형
LIST