我有一个代码,如果我选择了一些文本,然后点击复制它的工作原理。
我的问题是,如果我没有选择任何文字并点击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');
});
});
答案 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>