浏览器中复制功能

这篇博客探讨了在前端开发中实现复制链接功能时遇到的一个问题,即代码在本地运行正常,但打包后失效。作者提供了两种解决方法:一是使用浏览器的clipboard API,但该方法在打包后可能失效;二是引入clipboard插件,通过创建clipboard实例来监听复制事件,确保在打包后依然能正常工作。博客还详细展示了如何配置和使用这个插件,以及在Vue项目中如何全局挂载和应用。
摘要由CSDN通过智能技术生成

 方法一

shareRoute(content, link) {
      let row = content + `\n` + link; // 要复制的内容
      navigator.clipboard.writeText(row).then(
        (res) => {
          this.$message({
            message: "复制链接成功!",
            type: "success",
            duration: 2000,
          });
        },
        (err) => {
          this.$message({
            message: "复制链接失败!",
            type: "error",
            duration: 2000,
          });
        }
      );
    },

 但是上边的代码,存在一个问题,本地使用没问题,但是打包后的代码就失效了!!!

使用插件

npm install clipboard --save

入口文件 main.js 全局挂载一下 

import clipboard from 'clipboard'

Vue.prototype.clipboard = clipboard;
<el-button 
    size="mini" 
    type="text" 
    @click="shareRoute" 
    class="tag-copy"
    :data-clipboard-text="row.link"
>复制链接</el-button>

 必须写!!!

// 加一个名字 

class="tag-copy"

// 要复制的内容

:data-clipboard-text="row.link"

shareRoute() {
      let clipboard = new this.clipboard(".tag-copy");
      clipboard.on("success", (e) => {
        this.$message({
          message: "复制链接成功!",
          type: "success",
          duration: 2000,
        });
        //清除选中
        e.clearSelection();
        //释放内存,以防重复复制
        clipboard.destroy();
      });
      clipboard.on("error", (e) => {
        // 不支持复制
        this.$message({
          message: "复制链接失败!",
          type: "error",
          duration: 2000,
        });
        //清除选中
        e.clearSelection();
        //释放内存,以防重复复制
        clipboard.destroy();
      });
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值