onclick选择全文textarea

时间:2012-11-29 10:06:37

标签: javascript html

我不知道如何在点击textarea时立即复制到clickboard。我的意思是它应该选择其中的所有内容然后它应该弹出并询问类似'按ctrl c'复制到剪贴板中。 。

我已经有了代码但是无法在文本区域中选择全文并且应该复制到剪贴板中..

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 <script type="text/javascript">

function myfunc2() {
 var selectedobj=document.getElementById('showthis');

  if(selectedobj.className=='hide'){  //check if classname is hide 
    selectedobj.style.display = "block";
    selectedobj.readOnly=true;
    selectedobj.className ='show';
  }else{
    selectedobj.style.display = "none";
    selectedobj.className ='hide';
 }
}


function copyToClipboard (text) {
  window.prompt ("Copy to clipboard: Ctrl+C, Enter", text);
}



function select_all()
{
// alert(document.getElementById("showthis").value);

var text_val=eval("document.getElementById('showthis').value");
text_val.focus();

var copy = text_val.select();
window.prompt ("Copy to clipboard: Ctrl+C, Enter", copy);

}

</script>
 </head>

 <body>


            <label  onclick="myfunc2()">Click here</label>
            <textarea id="showthis" style="display:none" class="hide"  onclick="select_all()" readonly>dfdsfsfasdfdsfsfasdfssdfsfasf</textarea>


 </body>
</html>


任何人都可以看看这个...

编辑: 我只需要Javascript代码(不是J​​Query)

3 个答案:

答案 0 :(得分:1)

尝试使用此代码选择TextBox或TextArea中的文本:

<textarea id="txtSelect">Hello</textarea>

<script type="text/javascript">
    var textBox = document.getElementById("txtSelect");
    textBox.onfocus = function() {
        textBox.select();

        // Work around Chrome's little problem
        textBox.onmouseup = function() {
            // Prevent further mouseup intervention
            textBox.onmouseup = null;
            return false;
        };
    };
</script>

如果您需要选择文本并将其复制到剪贴板,我认为您应该为此目的插件。看看这个问题:: Copy text to the client's clipboard using jQuery

答案 1 :(得分:0)

在您的代码的基础上,我开发了以下example,希望它会有所帮助:

<强> HTML:

<textarea id="showthis" class="hide" readonly>click to copy</textarea>

JS:

$(function(){
    var select_all = function(control){
        $(control).focus().select();
        var copy = $(control).val();
        window.prompt ("Copy to clipboard: Ctrl+C, Enter", copy);
    }
    $("#showthis").click(function(){
        select_all(this);
    })
})

答案 2 :(得分:-1)

使用JQuery,它将只是:

$('#showthis').select()

仅使用javascript:

document.getElementById('showthis').select()