选择所有文本,然后在javascript中复制它

时间:2016-01-24 11:11:18

标签: javascript jquery

我有一个代码,如果我选择了一些文本,然后点击复制它的工作原理。

我的问题是,如果我没有选择任何文字并点击copy,那么我必须复制所有文字。

我的HTML:

<textarea id="txt" style="width:100%;height:100px;">To enjoy good health</textarea>

<div align="center"><button class="btn-md">copy</button></div>

我的剧本:

$(document).ready(function(){
   $('.btn-md').click(function(){
     $('#txt').focus();
     document.execCommand('copy');
   });
});

1 个答案:

答案 0 :(得分:5)

尝试

$(document).ready(function(){

    $('.btn-md').click(function(){
        var selectedText = getSelectedText($('#txt')[0]);

        if(getSelectedText($('#txt')[0]) != '') {
          
            copyToClipboard(selectedText);
        } else {
            $('#txt').focus().select();
        }
        document.execCommand('copy');
    });
});

function getSelectedText(e) {
    var text   = "",
        start  = e.selectionStart,
        finish = e.selectionEnd;
    text   = e.value.substring(start, finish);
    return text;
}

function copyToClipboard(text){

    var et = $('<textarea/>',{
       css:{ opacity: '0' }
    });
    $('body').append(et);
    $(et)[0].value = text;
    $(et).focus().select();
    document.execCommand('copy');
    $(et).remove();

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<textarea id="txt" style="width:100%;height:100px;">To enjoy good health</textarea>
<div align="center"><button class="btn-md">copy</button></div>