vue中点击复制粘贴功能 clipboard 移动端

本文详细介绍如何在Vue项目中利用Clipboard.js库为v-for循环生成的元素添加复制功能。通过npm安装Clipboard.js并导入,可在mounted生命周期内定义复制逻辑。示例代码展示了如何根据ID筛选目标数据并进行复制,包括多内容同时复制及跨平台兼容性测试。

页面是由 v-for 循环渲染出来,要给每一个结构里面的复制按钮加一个复制功能

  npm install clipboard --save    安装,如果安装处问题,多安装几次,我自己也安装了好几次

import Copy1 from 'clipboard'  在复制功能的页面引用

在mounted生命周期里面:
mounted () {
this.clipboard = (text) => {
console.log(text, event)
const cb = new Copy1('.t', {
text: () => { return text.accountName + '\n' + text.bankName + '\n' + text.bankBigNumber + '\n' + text.bankNumber }
})
cb.on('success', (e) => {
this.$vux.toast.show({
type: 'text',
text: '复制成功'
})
    cb.destroy()   //这行代码很重要,
      e.clearSelection() // 这一行不知道有什么用,写在那没管它
})
cb.on('error', (e) => {
})
}
}
clipboard 这个变量是预先存在data里面的,用来存一个函数,函数里面定义整个复制的过程
new Copy1执行,传的第一个参数是一个class类名,这个类名直接添加在自己的复制按钮上就可以,v-for循环后,那么每一个复制按钮都有了这个类名
        第二个参数是一个对象,定义要复制的内容,
之后用on来监听成功事件,成功后给一个弹窗提示,然后e.clearSelection()清除一下

Copy (id, event) {
let newArr = this.list.filter((item, index) => {
if (id === item.id) {
return item
}
})
this.clipboard(newArr[0])
}
Copy事件是定义在复制按钮上,接收了当前循环数据的id,以及事件对象,根据id拿到具体想复制的内容,在下面函数执行中传出去,因为我要同时复制多个内容,所以上面返回的text里面写了好几个,并且用换行符隔开

亲测,这个方法在ios和Android上都是友好的,看到我文章的朋友大胆用,欢迎讨论

 

转载于:https://www.cnblogs.com/rrene/p/10254122.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值