VUE3实现一键复制功能

1.使用@vueuse/core   (安全策略的问题,非https网页下面不让你拷贝)

@vueuse/core是一个为 Vue.js 提供常用功能和实用工具函数的库。它是基于 Composition API,为开发者提供了一组易于使用和可复用的函数

http网页使用解决方法:解决方法!

2.使用插件

		npm install vue-clipboard3
import useClipboard from 'vue-clipboard3';
import { message } from 'ant-design-vue';
setup() {
	 //一键复制
    const { toClipboard } = useClipboard();
    /*
    * 点击的方法
    * @item 需要复制的内容
    */
    const copyClick = async item => {
      try {
        await toClipboard(item);
        message.success('复制成功');
      } catch (e) {
        console.error(e);
      }
    };
	return {
		copyClick,
		}
}

 3. 原生代码实现

 3.1封装useCopyToClipboard.js

export function useCopyToClipboard(val) {
    let isSuccessRef = false;

    //创建input标签
    var input = document.createElement("input");
    //将input的值设置为需要复制的内容
    input.value = val;
    //添加input标签
    document.body.appendChild(input);
    //选中input标签
    input.select();
    //执行复制
    document.execCommand("copy");
    if (document.execCommand("copy")) {
        isSuccessRef = true;
    } else {
        isSuccessRef = false;
    }
    //移除input标签
    document.body.removeChild(input);

    return { isSuccessRef };
}

3.2 使用

import { useCopyToClipboard } from "@/utils/useCopyToClipboard.js"
function handleCopy(val) {
  let { isSuccessRef } = useCopyToClipboard(val)
  if (isSuccessRef) {
    proxy.$modal.msgSuccess("复制成功");
  } else {
    proxy.$modal.msgError("复制失败");
  }
}

html:   handleCopy(记得传递复制值)

   <div class="show-info-box">
          <div class="label-title">服务地址 :</div>
          <div class="label-info token" style="cursor: pointer;" @click="handleCopy(detailData.openUrl)">
            <span> {{ detailData.openUrl }}</span>
          </div>
        </div>

实现效果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值