首页 > 建站教程 > JS、jQ、TS >  clipboard.js 复制和剪切插件详解正文

clipboard.js 复制和剪切插件详解

clipboard.js 是一个不需要flash,将文本复制到剪贴板的插件。简单介绍下基本运用。

1 引入插件
1<script src="js/clipboard.min.js"></script>
2 基本使用
首先需要您需要通过传递DOM选择器,HTML元素或HTML元素列表来实例化它。
1new Clipboard('.btn');
1) 用一个元素当触发器来复制另一个元素的文本,data-clipboard-target属性后需要跟属性选择器
2<button class="btn" data-clipboard-target="#foo"></button>
另外还有另外一个属性data-clipboard-action属性,以指定是要要么copy还是要cut操作。默认情况下是copy。cut操作只适用于<input>或<textarea>元素。
1<textarea id="bar">Mussum ipsum cacilds...</textarea>
2<button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">
3Cut to clipboard
4</button>
2)从属性中复制文本,不需要另一个元素当触发器,可以使用data-clipboard-text属性,在后面放上需要复制的文本.
1<button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
2Copy to clipboard
3</button>
3 其他说明
1)通过运行检查clipboard.js是否支持Clipboard.isSupported(),返回true则可以使用。
2)显示一些用户反馈或捕获在复制/剪切操作后选择的内容。操作,文本,触发元素
01var clipboard = new Clipboard('.btn');
02clipboard.on('success', function(e) {
03    console.info('Action:', e.action);
04    console.info('Text:', e.text);
05    console.info('Trigger:', e.trigger);
06    e.clearSelection();
07});
08 
09clipboard.on('error', function(e) {
10    console.error('Action:', e.action);
11    console.error('Trigger:', e.trigger);
12});
3)该插件使用的是事件委托的方式来触发,所以大大减少了对dom的操作。

4 高级使用
如果你不想修改你的HTML,那么你可以使用一个非常方便的命令API。所有你需要做的是声明一个函数,写下你想要的操作,并返回一个值。下面是一个对不同id的触发器返回不同的值的例子。具体的使用方法请看https://clipboardjs.com
01<body>
03<button id='foo_1' class="btn" data-clipboard-target="#foo">
04</button>
05</body>
06<script>
07new Clipboard('.btn', {
08text: function(trigger) {
09if(trigger.getAttribute('id')=='foo_1'){
10return 1;
11}else{
12return 2;
13}
14}
15});
16</script>
5 一个简单的案例:
01<!DOCTYPE html>
02<head>
03    <meta charset="UTF-8">
04    <title>clipboard.js DEMO</title>
06</head>
07<body>
08<!-- Trigger -->
09<button class="btn" data-clipboard-text="我爱模板网 www.5imoban.net" onclick="fuzhi()">
10    Copy
11</button>
12  
13<script>
14 function fuzhi(){
15 var res = confirm('确定复制?');
16 if(res){
17 var clipboard = new ClipboardJS('.btn');
18     clipboard.on('success', function(e) {
19         console.log(e);
20     });
21     clipboard.on('error', function(e) {
22         console.log(e);
23     });
24 }
25 }
26</script>
27</body>
28</html>
    点击下载:clipboard.js