木子屋 Dnawo's BLOG

Javascript复制粘贴脚本库clipboard.js使用示例

👤 dnawo 📅 2020-04-22 👁 3667 👍 0 💬 0 🔄 来源:本站原创
clipboard.js不依赖flash,不依赖其他框架,gzip压缩后只有3kb大小。

一、引用clipboard.js

<script src="[i]https[/i]://github.com/zenorocha/clipboard.js/blob/master/dist/clipboard.min.js"></script>

二、clipboard.js使用示例

1、从另一个元素复制文本:

<!-- target -->
<input id="foo" value="hello,clipboard.">
<!-- trigger -->
<button class="btn1" data-clipboard-target="#foo">复制到剪贴板</button>
<script>new ClipboardJS('.btn1');</script>

或:
<!-- target -->
<input id="foo" value="hello,clipboard.">
<!-- trigger -->
<button class="btn1">复制到剪贴板</button>
<script>
	new ClipboardJS('.btn1', {
	    target: function(trigger) {
	        return document.getElementById('foo');
	    }
	});
</script>

2、从属性复制文本:

<button id="btn1" data-clipboard-text="hello,clipboard.">复制到剪贴板</button>
<script>new ClipboardJS(document.getElementById('btn1'));</script>

或:
<button id="btn1">复制到剪贴板</button>
<script>
	new ClipboardJS(document.getElementById('btn1'), {
	    text: function(trigger) {
	        return "hello,clipboard.";
	    }
	});
</script>

如果data-clipboard-text的值是动态赋值且比较耗时,可能导致复制的结果不正确,下边是我想到的一种解决方案:

<button class="btn1" style="display: none;" data-clipboard-text=""></button>
<script>new ClipboardJS(".btn1");</script>

<button id="todo">复制到剪贴板</button>

<script>
	$(document).ready(function(){
		$("#todo").click(function(){
			//todo...
			let text = (new Date()).getTime();
			
			$(".btn1").attr("data-clipboard-text", text);
			$(".btn1").click();
		});
	});
</script>

3、监听success和error事件反馈复制结果:

<button id="btn1" data-clipboard-text="hello,clipboard.">复制到剪贴板</button>

<script>
	var clipboard = new ClipboardJS(document.getElementById('btn1'));

	clipboard.on('success', function(e) {
	    alert("复制成功!");
	    e.clearSelection();
	});

	clipboard.on('error', function(e) {
	    alert("复制失败,按 Ctrl+C 复制文字。");
	});
</script>


参考资料

[1].clipboard.js中文网:http://www.clipboardjs.cn/

评论(0)

暂无评论。

验证码
评论需审核通过后显示
← 上一篇 同一个邮箱/同一个手机号/同一身份证能注册多少个微信公众号? 下一篇 → 语音菜价录入助手