clipboard.js 是一个不需要flash,将文本复制到剪贴板的插件。简单介绍下基本运用。
1 引入插件
1 | < script src = "js/clipboard.min.js" ></ script > |
2 基本使用
首先需要您需要通过传递DOM选择器,HTML元素或HTML元素列表来实例化它。
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" > |
2)从属性中复制文本,不需要另一个元素当触发器,可以使用data-clipboard-text属性,在后面放上需要复制的文本.
1 | < button class = "btn" data-clipboard-text = "Just because you can doesn't mean you should — clipboard.js" > |
3 其他说明
1)通过运行检查clipboard.js是否支持Clipboard.isSupported(),返回true则可以使用。
2)显示一些用户反馈或捕获在复制/剪切操作后选择的内容。操作,文本,触发元素
01 | var clipboard = new Clipboard( '.btn' ); |
02 | clipboard.on( 'success' , function (e) { |
03 | console.info( 'Action:' , e.action); |
04 | console.info( 'Text:' , e.text); |
05 | console.info( 'Trigger:' , e.trigger); |
09 | clipboard.on( 'error' , function (e) { |
10 | console.error( 'Action:' , e.action); |
11 | console.error( 'Trigger:' , e.trigger); |
3)该插件使用的是事件委托的方式来触发,所以大大减少了对dom的操作。
4 高级使用
如果你不想修改你的HTML,那么你可以使用一个非常方便的命令API。所有你需要做的是声明一个函数,写下你想要的操作,并返回一个值。下面是一个对不同id的触发器返回不同的值的例子。具体的使用方法请看https://clipboardjs.com
03 | <button id= 'foo_1' class= "btn" data-clipboard-target= "#foo" > |
07 | new Clipboard( '.btn' , { |
08 | text: function (trigger) { |
09 | if (trigger.getAttribute( 'id' )== 'foo_1' ){ |
5 一个简单的案例:
03 | <meta charset= "UTF-8" > |
04 | <title>clipboard.js DEMO</title> |
09 | <button class= "btn" data-clipboard-text= "我爱模板网 www.5imoban.net" onclick= "fuzhi()" > |
15 | var res = confirm( '确定复制?' ); |
17 | var clipboard = new ClipboardJS( '.btn' ); |
18 | clipboard.on( 'success' , function (e) { |
21 | clipboard.on( 'error' , function (e) { |
点击下载:
clipboard.js