js实现复制内容到剪贴板

4 篇文章 0 订阅
3 篇文章 0 订阅


方法一: 使用 js 实现

function copyToClipboard (text) {
    if(text.indexOf('-') !== -1) {
        let arr = text.split('-');
        text = arr[0] + arr[1];
    }
    var textArea = document.createElement("textarea");
      textArea.style.position = 'fixed';
      textArea.style.top = '0';
      textArea.style.left = '0';
      textArea.style.width = '2em';
      textArea.style.height = '2em';
      textArea.style.padding = '0';
      textArea.style.border = 'none';
      textArea.style.outline = 'none';
      textArea.style.boxShadow = 'none';
      textArea.style.background = 'transparent';
      textArea.value = text;
      document.body.appendChild(textArea);
      textArea.select();
      try {
        var successful = document.execCommand('copy');
        var msg = successful ? '成功复制到剪贴板' : '该浏览器不支持点击复制到剪贴板';
       alert(msg);
      } catch (err) {
        alert('该浏览器不支持点击复制到剪贴板');
      }
      document.body.removeChild(textArea);
}

方法二: 使用 clipboard.min.js 实现


1.引入clipboard.min.js文件

2.选择一个可以确定被拷贝元素的选择器,本例中使用用的是id选择器,当然也可以使用class选择器、 基本的标签选择器等等

3.定义一个button按钮,注意按钮的属性:
  data-clipboard-action="copy" data-clipboard-target="test"
  其中data-clipboard-target属性就是第二步你定义的选择器

4.书写js,建立clipboard对象以及复制后执行的方法

<div id="test">hello</div>
<button class="btn" data-clipboard-action="copy" data-clipboard-target="test">Copy</button>

<!-- 引入JS -->
<script src="../static/clipboard.min.js"></script>
<script>
     var clipboard = new Clipboard('.btn');
     clipboard.on('success', function(e) {
           console.log(e);
           console.info('Action:', e.action);
           console.info('Text:', e.text);
           console.info('Trigger:', e.trigger); 
           e.clearSelection();
     });
     clipboard.on('error', function(e) {
           console.log(e);
     });
</script>


**PS:如果根据需要剪贴板的内容需要自己定义 可以借鉴以下操作**

<button class="btnCopy">Copy</button>
<!-- 引入JS -->
<script src="../static/clipboard.min.js"></script>
<script>
     new Clipboard('.btnCopy', {
            text: function(trigger) {
                    //$(trigger) 为btn标签
                    var str="COPY内容";
                     return str;
             }
     });
</script>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值