clipboard.js是一款轻量级的实现复制文本到剪贴板功能的JavaScript插件。经过该插件能够将输入框,文本域,DIV元素中的文本等文本内容复制到剪贴板中html
官方地址:https://clipboardjs.com/
Github地址:https://github.com/zenorocha/clipboard.js/git
1.引入js文件github
<script src="dist/clipboard.min.js"></script>
2.基本使用浏览器
首先须要您须要经过传递DOM选择器,HTML元素或HTML元素列表来实例化它。dom
new Clipboard('.btn');
用一个元素当触发器来复制另外一个元素的文本,data-clipboard-target属性后须要跟属性选择器函数
<input id="foo" value="https://github.com/zenorocha/clipboard.js.git"> <button class="btn" data-clipboard-target="#foo"></button>
另外还有另一个属性data-clipboard-action属性,以指定是要要么copy仍是要cut操做。默认状况下是copy。cut操做只适用于<input>
或<textarea>
元素。插件
<textarea id="bar">Mussum ipsum cacilds...</textarea> <button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">Cut to clipboard</button>
从属性中复制文本,不须要另外一个元素当触发器,能够使用data-clipboard-text属性,在后面放上须要复制的文本code
<button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">Copy to clipboard</button>
3.其余说明htm
经过运行检查clipboard.js是否支持Clipboard.isSupported(),返回true则能够使用。
显示一些用户反馈或捕获在复制/剪切操做后选择的内容。操做,文本,触发元素事件
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); });
该插件使用的是事件委托的方式来触发,因此大大减小了对dom的操做。
4.高级使用
若是你不想修改你的HTML,那么你能够使用一个很是方便的命令API。全部你须要作的是声明一个函数,写下你想要的操做,并返回一个值。下面是一个对不一样id的触发器返回不一样的值的例子
<body> <input id="foo" value="https://github.com/zenorocha/clipboard.js.git"> <button id='foo_1' class="btn" data-clipboard-target="#foo"></button> </body> <script> new Clipboard('.btn', { text: function(trigger) { if(trigger.getAttribute('id')=='foo_1'){ return 1; }else{ return 2; } } }); </script>
5.支持的浏览器
Chrome 42+,Edge 12+,Firefox 41+,IE 9+,Opera 29+,Safari 10+