js Copy剪切板
第一种 clipboardjs
需要以来demo元素,自动添加事件,
我想要的是直接setText(txt)这种,在方法内直接执行copy文本
第二种 js 网站上找到的
jS原生,火狐,chrome和IE都支持的复制剪切板功能window.clipboardData.setData
function copyToClipboard(txt) { 
    if (window.clipboardData) { 
        window.clipboardData.clearData(); 
        window.clipboardData.setData("Text", txt); 
        alert("<strong>复制</strong>成功!") 
    } else if (navigator.userAgent.indexOf("Opera") != -1) { 
        window.location = txt; 
        alert("<strong>复制</strong>成功!"); 
    } else if (window.netscape) { 
        try { 
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
        } catch (e) { 
            alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将 'signed.applets.codebase_principal_support'设置为'true'"); 
        } 
        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); 
        if (!clip) 
            return; 
        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); 
        if (!trans) 
            return; 
        trans.addDataFlavor('text/unicode'); 
        var str = new Object(); 
        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); 
        var copytext = txt; 
        str.data = copytext; 
        trans.setTransferData("text/unicode", str, copytext.length * 2); 
        var clipid = Components.interfaces.nsIClipboard; 
        if (!clip) 
            return false; 
        clip.setData(trans, null, clipid.kGlobalClipboard); 
        alert("<strong>复制</strong>成功!") 
    }else if(copy){ 
        copy(txt); 
        alert("<strong>复制</strong>成功!") 
    } 
} 发现最后else if(copy) 中,始终copy是false,在谷歌浏览器控制台中又是正常,项目是vue项目,所以放弃这种方法
第三种,也就是最满意的,在伟大的stackoverflow上发现的
util.copyText=function(text) { 
        // debugger
        var textArea = document.createElement("textarea");
        textArea.value = text;
        document.body.appendChild(textArea);
        textArea.focus();
        textArea.select();
 
        try {
          var successful = document.execCommand('copy');
          var msg = successful ? 'successful' : 'unsuccessful';
          console.log('Fallback: Copying text command was ' + msg);
        } catch (err) {
          console.error('Fallback: Oops, unable to copy', err);
        }
 
        document.body.removeChild(textArea);
};分析第一种clipboardjs的代码,最终也是调用document.exeCommand方法实现copy,现在正在用
来自 <https://note.youdao.com/md/?defaultMode=view&fileId=983E73AA42E14650883042618FE6B738>
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post YES开发框架  
 
 

