• 티스토리 홈
  • 프로필사진
    루루개발자
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
루루개발자
  • 프로필사진
    루루개발자
    • 분류 전체보기 (213)
      • react & next.js (13)
      • Node.js & Javascript & Type.. (24)
        • d3.js (10)
      • 차트 만들기 (1)
      • 티스토리 스킨 개발 (7)
      • 내가 만든 패키지 (3)
      • 내가 만든 CSS (1)
      • CSS (7)
      • 도커 & 쿠버네티스 (3)
      • 개인 프로젝트 (7)
      • 리뷰 & 추천 (2)
      • 알고리즘 (1)
      • IT 기타 (18)
      • 잡동사니 (1)
      • Spring Boot (5)
      • 취미로 그리는 그림들 (120)
      • 개인적인 생각들 (0)
  • 반응형
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [ javascript-library ] javascript 클립보드로 복사하기 기능 구현하기
        2022년 06월 23일
        • 루루개발자
        • 작성자
        • 2022.06.23.오후11:22
        반응형

         

        안녕하세요. 루루개발자 입니다.

        최근 회사 프로젝트를 하면서, 사용자가 특정 버튼을 클릭하면 특정 문자열이 클립보드에 자동 복사되어지는 기능 구현이 필요하였습니다. 그래서 관련 라이브러리를 찾아보니 다음과 같은 라이브러리가 존재했습니다.

         

        https://www.npmjs.com/package/clipboard

         

        clipboard

        Modern copy to clipboard. No Flash. Just 2kb. Latest version: 2.0.11, last published: 2 months ago. Start using clipboard in your project by running `npm i clipboard`. There are 1997 other projects in the npm registry using clipboard.

        www.npmjs.com

         

        다운로드 수도 많은 걸로 봐서 많이 사용되는 라이브러리 같았습니다.

        해당 clipboard.js 라이브러리를 그대로 사용하려 하였으나 제가 원하는 예제가 보이질 않았습니다.

         

        저는 깔끔하게 함수에 인자 1개 넣으면 복사가 되는 걸 원했으나, clipboard.js 라이브러리의 예제들을 보면 dom 과 연동된 예제들 밖에 보이질 않았습니다. 그렇다면 dom 과 연동되는 부분들을 자동으로 처리해주는 코드를 작성해 준다면 제가 원하는 것처럼 인자에 원하는 문자열을 넣으면 복사가 되는 함수를 구현할 수 있을 것이란 생각이 들었습니다.

         

        그렇게 해서 작성한 코드가 바로 다음과 같습니다.

        https://github.com/wisdomstar94/javascript-library/blob/main/src/librarys/copy-to-clipboard/web/copy-to-clipboard.ts

         

        GitHub - wisdomstar94/javascript-library: javascript 관련 다양한 라이브러리를 모아놓은 프로젝트 입니다.

        javascript 관련 다양한 라이브러리를 모아놓은 프로젝트 입니다. Contribute to wisdomstar94/javascript-library development by creating an account on GitHub.

        github.com

         

        로직은 다음과 같습니다.

         

        1. 임시로 사용할 button element 를 생성. (아직 dom 에 append 하기 전)

        2. 생성한 button element 에 사용자 눈에 보이지 않고, 기존 컨텐츠에 영향을 주지 않게 하는 style 지정.

        3. body 요소에 하위 dom 변경 이벤트 감지 핸들러 설정.

        4. body 요소에 생성한 button element 를 append.

        5. body 요소에서 하위 dom 변경 이벤트 감지.

        6. ClipboardJS 클래스의 인자에 button element 를 넘기면서 인스턴스화.

        7. ClipboardJS 인스턴스에 성공했을 때의 이벤트 핸들러와 실패했을 때의 이벤트 핸들러 설정.

        8. button element 에 click 이벤트 강제 발생.

        9. ClipboardJS 인스턴스에서 복사 진행.

        10. 성공 또는 실패에 대한 이벤트 발생.

        11. body 요소에 하위 dom 변경 이벤트 감지 핸들러 제거.

         

        위 과정이 자동으로 이루어지는 함수를 위 github 링크가 가리키는 typescript 파일에 작성하였으며 복사 기능을 이용하고 싶다면 아래와 같이 사용하시면 됩니다.

        copyToClipboard('복사될 문구');

         

        네, 드디어 제가 원하는 함수 모양이 나왔습니다. :)

        반응형

        '개인 프로젝트' 카테고리의 다른 글

        [ electron-sample ] Electron + Typescript + React 셋팅  (4) 2023.08.27
        [ nestjs-aws-s3-upload ] nest.js 에서 AWS s3 로 파일 업로드하기  (0) 2022.10.03
        [ google-fcm-web-sdk-bundle-sample ] FCM web sdk 번들링 샘플 프로젝트  (0) 2022.06.18
        [ google-web-login-sample ] 구글 웹 로그인 샘플  (0) 2022.06.14
        [ slack-bot-api ] node.js Slack 봇 API  (0) 2022.06.07
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바

        단축키

        내 블로그

        내 블로그 - 관리자 홈 전환
        Q
        Q
        새 글 쓰기
        W
        W

        블로그 게시글

        글 수정 (권한 있는 경우)
        E
        E
        댓글 영역으로 이동
        C
        C

        모든 영역

        이 페이지의 URL 복사
        S
        S
        맨 위로 이동
        T
        T
        티스토리 홈 이동
        H
        H
        단축키 안내
        Shift + /
        ⇧ + /

        * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.