2016-01-24 32 views
2

我有一個代碼,如果我選擇了一些文本,然後單擊它複製它的作品。選擇所有文本,然後複製它在javascript

我的問題如果我沒有選擇任何文字,然後點擊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

閱讀本http://stackoverflow.com/questions/34178 211/text-highlighting-in-html-page/34199730?noredirect = 1#comment57568955_34199730它會幫助你.. –

+0

重複在哪裏?如果我不選擇文本的任何部分,我在詢問如何選擇所有文本的另一點。 – Jsparo30

回答

4

嘗試

$(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>

+0

感謝您的回答,無法正常工作。如果我未選擇任何文本或文本的選定部分,它將選擇兩者中的所有文本。 – Jsparo30

+0

感謝您的回答。它運作良好。 – Jsparo30

相關問題