实现点击按钮 复制文本内容

一、原生方法

1、结构

<li><span>运单号码:</span><b id="waybill_number">{$order->address}</b><p style="display:inline-block;color: red;" onclick="copy()">复制</p></li>

2、js

function copy(){
        copytxt($('#waybill_number')[0]); //获取复制文本的内容
        layer.msg('复制成功');
    }
        
   function copytxt(element) {
        window.getSelection().removeAllRanges(); 
        var selection = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(element);
        window.getSelection().addRange(range); 
        selection.removeAllRanges();
        selection.addRange(range);
        
        document.execCommand('copy');  
     } 

二、引用插件方法

1、插件地址

https://clipboardjs.com/
根据网页,该安装的安装 ,该引入的引入,此处不述说。
使用:
(1)结构

<li><span>运单号码:</span>
   {if !empty($order->waybill_number)}
      <b id="waybill_number" data-clipboard-text=" {$order->waybill_number}" >{$order->waybill_number}<p class="ml10" style="display:inline-block;color: #fff;background: red;" id="payment_copy">复制</p></b>
   {/if}
</li>

注:这个是php smarty 渲染的结构, {$order->waybill_number}表示一个变量。
要给结构复制的值加上data-clipboard-text属性,写法:data-clipboard-text=“复制的变量”
(2)js
先引入插件
结构加载完成运行以下代码,vue的话,写在mounted生命周期中

// ====复制粘贴====
    var clipboard = new Clipboard('#waybill_number'); 
    clipboard.on('success', function(e) { 
        layer.msg('复制成功');  //小弹窗 ,复制成功,这里用的是layer ui框架的
    });
    clipboard.on('error', function(e) {
        layer.msg('复制失败');
    });
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值