Clipboard.js 实现点击复制

在开发过程中难免会遇到点击分享的需求,这里有两种实现方式:
第一种: 通过原生js 的方法用(存在兼容性):

document.execCommand( aCommandName, aShowDefaultUI, aValueArgument**)**
参数说明:
aCommandName
      命令的名称:常用的为"copy","cut"等;

注:“copy” 拷贝当前选中内容到剪贴板
        “cut”   剪贴当前选中的文字并复制到剪贴板
aShowDefaultUI
      是否展示用户界面,一般为 false;

 aValueArgument
      默认为null;

返回值:Boolean 如果还是false 则表示还不能支持;

html :

<input type="text" id="copyVal" readonly value="被复制内容" />
<button class="copyBtn" >点击复制</button>

javascript:

var copyBtn = document.getElementsByClassName('copyBtn')[0];

	copyBtn.onclick = function(){
	    var copyVal = document.getElementById("copyVal");
	        copyVal.select();
	    
	    try{
	        if(document.execCommand('copy', false, null)){
	            //success info
	            console.log("doSomething...");
	        } else{
	            //fail info
	            console.log("doSomething...");
	        }
	    } catch(err){
	        //fail info
	        console.log("doSomething...");
	    }
	}

具体兼容如下-pc 端浏览器:

pc端刘浏览器兼容性
移动端浏览器-安卓(微信浏览器可用):
移动端浏览器-安卓
移动端浏览器-ios:
目前是不支持所有浏览器,包括微信浏览器;

第二种 使用clipboard.js 实现(个人推荐):
它是一个不需要Flash,就能实现文本复制或者剪切到剪切板的轻量级插件;
其中需要两个参数是

data-clipboard-action 是操作类型值为复制(copy ),剪切(cut) 默认为copy 可以选择不加该属性
data-clipboard-target 是要复制或者剪切的对象的id值 必选选项

具体实例:
可以使用cdn 或者直接下载 设置好引用路径

<script type="text/javascript" src="./dist/clipboard.min.js"></script>	

html

<input type="text" id="copyVal" readonly value="被复制内容" />

<button class="copyBtn"   data-clipboard-target="#copyVal">点击复制</button>

javascript

		//实例化 ClipboardJS对象;
        var copyBtn = new ClipboardJS('.copyBtn');

        copyBtn.on("success",function(e){
            // 复制成功
            alert(e.text);
            e.clearSelection();
        });
        copyBtn.on("error",function(e){
            //复制失败;
            console.log( e.action )
        });
这里的ClipboardJS在实例化时, 如果报错:clipboard is not defined
解决办法就是如下:
new ClipboardJS(obj)
原因就是 Clipboard.JS版本是2.0及以上版本
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值