본문 바로가기
개발이야기/javascript

특정 엘리먼트 클릭시 클립보드에 복사하기

by 세크티 2020. 6. 30.

특정 텍스트, 예를 들어 table의 td 클릭시 td내의 텍스트를 클립보드에 복사하는 코드

 

<script>

jQuery.fn.selectText = function(){
    this.find('input').each(function() {
        if($(this).prev().length == 0 || !$(this).prev().hasClass('p_copy')) {
            $('<p class="p_copy" style="position: absolute; z-index: -1;"></p>').insertBefore($(this));
        }
        $(this).prev().html($(this).val());
    });
    var doc = document;
    var element = this[0];
    console.log(this, element);
    if (doc.body.createTextRange) {
        var range = document.body.createTextRange();
        range.moveToElementText(element);
        range.select();
    } else if (window.getSelection) {
        var selection = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(element);
        selection.removeAllRanges();
        selection.addRange(range);
    }
    document.execCommand("copy");

};

$(".bar").selectText();

</script>

 

jquery 확장함수이므로 셀렉터를 이용해서 특정 엘리먼트를 찾은뒤 selectText()함수 실행해준다.

댓글