vue 一键复制功能 jQuary拼接字符串内有点击事件

需求:jQuary拼接的html表格需要一键复制功能

在这里插入图片描述

点击事件的实现

1.onClick调用copy方法

//content是拼接的字符串 onClick="copy(this)"是点击复制事件
 content += '<td class="head">' + key + ':</td><td class="info" onClick="copy(this)">' + valKey + '</td>'

2.在钩子函数中加window.copy= this.copy

//从copy.js导入这两个方法,这两个方法的实现在下边
import { selectText, copyText } from "@/utils/copy";

mounted() {
	window.copy= this.copy //很重要,否则copy方法不生效
}
methods: {
    // 复制方法
    copy(text) {
      copyText(selectText(text))
    },
 }

3.新建一个copy.js(除了第一句导入的messageSuccessInfo 方法,其他可以直接用)

//导入messageSuccessInfo方法
import { messageSuccessInfo } from '@/utils/common'

export function selectText(element) {
  return element.innerText
}

export function copyText(text) {
  var textValue = document.createElement('textarea')
  textValue.setAttribute('readonly', 'readonly') // 设置只读属性防止手机上弹出软键盘
  textValue.value = text
  document.body.appendChild(textValue) // 将textarea添加为body子元素
  textValue.select()
  var res = document.execCommand('copy')
  document.body.removeChild(textValue)// 移除DOM元素
  if (text !== '') {
    messageSuccessInfo('复制成功')
  }
  return res
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值