兼容性良好的js一键复制

       实现js一键复制原生方法里有window.clipboardData.setData,用这个方法并不兼容,只能用于IE浏览器,在别的浏览器中只能让用户手动复制。具体使用如下:

window.clipboardData.setData("Text","你要复制的内容");

       网上有很多用ZeroClipboard,用flash实现一键复制的兼容,但是复制粘贴这样的小功能可以不需要依赖flash或其他臃肿的框架。

       这里主要介绍下clipboard的使用,地址:https://github.com/zenorocha/clipboard.js.git

       引入js文件clipboard.min.js。

<body>    
<!-- Target -->
<input id="target" value="你要复制的内容">
<!-- Trigger -->
<button class="btn" data-clipboard-target="#target">一键复制</button>
<script>
var clipboard = new Clipboard('.btn');
</script>
</body>

上述代码就可以完成一键复制的功能,点击button复制input的值。本人测试若input隐藏就无法复制。当我们要复制不需要显示的文本时。如下

<body>    
<!-- Target -->

<!-- Trigger -->
<button class="btn" data-clipboard-text="">一键复制</button>
<script>
var clipboard  = new Clipboard('.btn',{
    		text:function(trigger) {
		        return "你要复制的内容";
		    }	
    	});
</script>
</body>

在new Clipboard构造函数里,除了像上面函数那样加text属性(目标函数返回要复制的内容)外,还可以加target属性,目标函数返回的是dom节点。这些需要在类名为btn的button上加入data-clipboard-text或者data-clipboard-target属性。

       此外clipboard也提供了一些回调函数,成功和失败的回调如下:

var clipboard = new Clipboard('.btn');

clipboard.on('success', function(e) {    
    console.info('Action:', e.action);    
    console.info('Text:', e.text);    
    console.info('Trigger:', e.trigger);
    e.clearSelection();
});

clipboard.on('error', function(e) {  
      console.error('Action:', e.action);  
      console.error('Trigger:', e.trigger);
      e.clearSelection();
});

转载于:https://my.oschina.net/bothyan/blog/517658

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值