美文网首页
剪贴板插件clipboard.js

剪贴板插件clipboard.js

作者: 筱雪儿00 | 来源:发表于2017-09-26 17:21 被阅读0次

将文本复制到剪贴板的现代化方法。没有Flash。没有框架只有3kb的gzip压缩

为什么使用clipboard.js

将文本复制到剪贴板不应该很困难。它不应该需要几十个步骤配置或数百个KB来加载。但最重要的是,它不应该依赖于Flash或任何blo肿的框架。

这就是clipboard.js存在的原因。

安装

你可以在npm找到它。

npm install clipboard --save   或者直接下载:https://github.com/zenorocha/clipboard.js/archive/master.zip

建立

首先,包括dist文件夹中的脚本或从第三方CDN提供程序加载它。

现在,您需要通过传递DOM选择器HTML元素HTML元素列表来实例化它。

newClipboard('.btn');

用法

1)copy

<input id='foo' value="https://github.com/zenorocha/clipboard.js.git">
<button class="btn" data-clipboard-target="#foo">
      <img src="assets/clippy.svg" alt="Copy to clipboard">
</button>

2)cut 

data-clipboard-action属性,以指定是否要使用任何内容copy或cut内容。

如果省略此属性,copy默认情况下将被使用。

<textarea id="bar">Mussum ipsum cacilds...</textarea>

<button class="btn"data-clipboard-action="cut"data-clipboard-target="#bar">
      Cut to clipboard
</button>

该cut操作只适用于input 或者 textarea 元素。

3)从属性复制文本

<button class="btn"data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
      Copy to clipboard
</button>

4) 反馈

在某些情况下,您希望显示一些用户反馈或捕获复制/剪切操作后选择的内容。

这时候就可以触发自定义事件,比如success和error并实现自定义的逻辑。

varclipboard =newClipboard('.btn');
clipboard.on('success',function(e){
       成功代码
});
clipboard.on('error',function(e){
       失败代码
});

5) 高级用法

如果您不想修改HTML,那么有一个非常方便的使用API​​。所有你需要做的是声明一个函数,做你的事情,并返回一个值。

例如,如果要动态设置target,则需要返回一个节点。

new Clipboard('.btn', { target: function(trigger) {
        return trigger.nextElementSibling; // return node
}});

如果你想动态设置一个text,你将返回一个String。

new Clipboard('.btn', {text:function(trigger){
       returntrigger.getAttribute('aria-label');// return text
}});

清理我们创建的事件和对象的方法。

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

6) 检查是否支持clipboard.js

Clipboard.isSupported()

浏览器支持

Chrome 42+          IE 9+            Firefox 41+          Safari 10+      Opera 29+

源码demo:https://github.com/zenorocha/clipboard.js/

文章来源:https://clipboardjs.com/

相关文章

网友评论

      本文标题:剪贴板插件clipboard.js

      本文链接:https://www.haomeiwen.com/subject/ysxeextx.html