JS 实现复制、全选文本

先上效果,由于截图,高亮蓝色成了灰色    参考这位大佬的   https://www.cnblogs.com/dreambin/p/9046999.html

HTML 部分

<form name=test>  
    <input type="button" id="cardList" value="点此全选复制" onclick="javascript:selectAll('test.select1')">

    <textarea name="select1" rows=3 cols=46 onclick="selectAll('test.select1')">可以全选</textarea>
</form>

javaScript 部分

//实现全选功能
    function selectAll(theField) {

        var tempval = eval("document." + theField)  //这里主要是要得到dom  document.test.select1

        tempval.select()    // 选取文本域的内容

        this.copy(tempval.value)
    }


    //实现复制功能
    /*
        Evevt.clipboardData 对象

        clipboardData是JavaScript剪切板对象,该对象提供了3个常用方法:

      clearData():  clipboardData对象从剪切板删除一种或多种数据格式(一个参数:数据类型)

      getData():  clipboardData对象从剪切板获取指定格式的数据(一个参数:数据类型)

      setData():  clipboardData对象赋予指定格式的数据(两个参数:数据类型,要赋予的值)

      *数据类型一般为“"text/plain" ”
    */
    function copy(str) {
        var save = function (e) {
            e.clipboardData.setData('text/plain', str); //clipboardData对象
            e.preventDefault(); //阻止默认行为
        }
        document.addEventListener('copy', save);    
        document.execCommand("copy"); //使文档处于可编辑状态,否则无效
    }

    document.getElementById('cardList').addEventListener('click', function (ev) {
        copy(ev.target.innerText)
    })

    selectAll('test.select1')
原文地址:https://www.cnblogs.com/TreeCTJ/p/11778085.html