도쿄사는 외노자

테이블 내용을 클립보드에 복사하기 본문

Tech/JavaScript

테이블 내용을 클립보드에 복사하기

Enrai 2016. 6. 8. 14:40

jQuery DataTables등, 각종 테이블에 입력된 내용을 엑셀로 옮길 필요가 있었다.

그냥 마우스 드래그로 대충 긁어서 Ctrl+C, Ctrl+V를 해도 된다만...

아무래도 엔드유저를 대상으로 하다 보니, 버튼 클릭만으로 클립보드 복사를 해야 했다.

예전에 회사 선배 한 분이 document.body.createTextRange()를 써서 해결하려 했던 것 같은데...

결국엔 익스플로러에서만 된다고 하고는 내비뒀더라.

뭐, 여하튼 알아보았더니 크롬 등에서도 다 방법이 있길래 적어보도록 한다.

 

1. 일단 버튼을 만들고

1
2
3
4
5
6
<div class="pull-right" style="margin-bottom: 10px; padding-bottom: 10px;">
  <a id="ctrlCButton" class="btn btn-info btn-small" style="width: 100px;" rel="tooltip" data-original-title="クリップボードにコピーします">
    <i class="icon-pencil icon-white"></i>
    <span class="btnTitle" style="vertical-align: text-top;">Ctrl + C</span>
  </a>
</div>
cs

 

2. javascript에서 아래와 같이 적어주면 끝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * Ctrl + C ボタン押下
 */
$(document).on('click''#ctrlCButton'function() {
    if (document.body.createTextRange) {
        //createTextRangeをサポート(IE)
        var textRange = document.body.createTextRange();
        textRange.moveToElementText(document.getElementById("projectHanbai_table"));
        textRange.execCommand("Copy");
       $common.notice_success('クリップボードにコピーしました。');
    } else {
        //createTextRangeを非サポート(IE以外)
        window.getSelection().selectAllChildren(document.getElementById('projectHanbai_table'));
        document.execCommand('Copy');
       $common.notice_success('クリップボードにコピーしました。');
    }
});
cs

 

'Tech > JavaScript' 카테고리의 다른 글

문자열에서 개인번호 검출  (0) 2016.08.02
자바스크립트에서의 소수점 제어  (0) 2016.06.23
바이트 길이 표시  (0) 2016.04.13
jQuery Sparklines  (0) 2016.02.16
Javascript Comma  (0) 2016.02.15