web页面长按复制文本clipboard.js 使用教程

纯JavaScript实现的复制剪切库–clipboard.js

clipboard.js 使用纯 JavaScript (无需 Flash)实现了复制浏览器内容到系统剪切板的功能,可以在浏览器和 Node 环境中使用。支持 Chrome 42+、Firefox 41+、IE 9+、Opera 29+。

复制文本到剪切板并不是件困难的事情,它不需要复杂的配置步骤或者多说KBs的加载,但大多数情况下,都需要依赖Flash或者其他臃肿的框架,这就是clipboard.js存在的意义。

安装

使用 npm 或者 bower 安装:

  
  
  1. //You can get it on npm.
  2. npm install clipboard --save
  3.  
  4. //Or bower, too.
  5. bower install clipboard --save

如果你没有上述包管理工具的话,可以直接下载 .zip 文件

设置

首先加载 js 文件:


   
   
  1. <script src="dist/clipboard.min.js"></script>
  2.  
  3. //或使用CDN
  4. <script src="https://cdn.rawgit.com/zenorocha/clipboard.js/master/dist/clipboard.min.js"></script>

现在你需要使用 DOM 选择器来实例化它,该选择器对应于选择元素,如:<button class="btn">

  
  
  1. new Clipboard('.btn');

我们需要获取每一个匹配的元素,并为每个元素添加事件监听器,但是如果匹配元素很多的话,会消耗大量的内容。为此,我们使用事件代表团,它用一个单独的侦听器替换多个事件侦听器。

使用

复制元素

常见的用法是从另一个元素中复制内容,你可以通过给目标元素添加一个 data-clipboard-target属性来指定剪贴板目标元素。


   
   
  1. <!-- Target -->
  2. <input id="foo" value="https://github.com/zenorocha/clipboard.js.git">
  3.  
  4. <!-- Trigger -->
  5. <button class="btn" data-clipboard-target="#foo">
  6. <img src="assets/clippy.svg" alt="Copy to clipboard">
  7. </button>

剪切元素

另外,你还可以通过 data-clipboard-action 属性来定义是“复制 copy ”还是“剪切 cut ”内容。如果忽略该属性,则默认值为 copy 。


   
   
  1. <!-- Target -->
  2. <textarea id="bar">Mussum ipsum cacilds...</textarea>
  3.  
  4. <!-- Trigger -->
  5. <button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">
  6. Cut to clipboard
  7. </button>

cut 动作只能用于 <input> 或者 <textarea> 元素。

从属性中复制

事实上,你甚至不需要任何其他元素就能实现复制功能。你只需在目标元素中包含一个 data-clipboard-text 属性即可。


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

事件


   
   
  1. var clipboard = new Clipboard('.btn');
  2.  
  3. clipboard.on('success', function(e) {
  4. console.info('Action:', e.action);
  5. console.info('Text:', e.text);
  6. console.info('Trigger:', e.trigger);
  7.  
  8. e.clearSelection();
  9. });
  10.  
  11. clipboard.on('error', function(e) {
  12. console.error('Action:', e.action);
  13. console.error('Trigger:', e.trigger);
  14. });

高级用法

  
  
  1. new Clipboard('.btn', {
  2. target: function(trigger) {
  3. return trigger.nextElementSibling;
  4. }
  5. });
  6.  
  7. new Clipboard('.btn', {
  8. text: function(trigger) {
  9. return trigger.getAttribute('aria-label');
  10. }
  11. });
  12.  
  13. var clipboard = new Clipboard('.btn');
  14. clipboard.destroy();

浏览器支持

clipboard_js_support

演示

具体效果可以查看本站代码位置



参考文章:http://www.xttblog.com/?p=494   文章中例子执行有点问题

http://9iphp.com/web/javascript/js-copy-library-clipboard-js.html


http://blog.csdn.net/three_bird/article/details/51336828

官网:https://clipboardjs.com/





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值