vue使用vue-clipboard2实现复制功能遇到的问题

vue使用vue-clipboard2实现复制功能遇到的问题

今天遇到一个功能点需要点击table获取id再通过id获取url,然后复制这个url,然后尝试了各种方法都没有实现。第一个似的就是安装vue-clipboard2,但是搜到的都是很相似的的文章,但是自己试了完全没效果。
好在去了官方文档看了https://www.npmjs.com/package/vue-clipboard2
总算知道没效果的原因了
在这里插入图片描述
翻译:
是的,您可以使用我们的新方法:this.$copyText。请参见sample2,在这里我们将剪贴板指令替换为v-on指令。
现代浏览器有一些限制,比如不能在没有用户交互的情况下使用window.open。所以复制东西也有同样的限制!在使用之前先测试一下。确保没有在任何异步方法中使用此方法。
在使用此功能之前,请先阅读:本期和本页。

emmm所以说不能在异步方法中使用这个方法,总算找到原因了,但是没找到解决方法。

解决办法:
就是用ajax原生的异步

copyFun(id) {
      $.ajaxSettings.async = false
      let that = this
      $.get(url, {}, function(result) {
          // 请求处理
	      that.$copyText(result.url).then(function(e) {
	        that.$message({
	          type: 'success',
	          message: '已复制'
	        })
	      }, function(e) {
	        that.$message({
	          type: 'warning',
	          message: '复制失败'
	        })
	      })
      }, 'json')
    },
Vue使用 `vue-clipboard2` 实现复制粘贴功能,可按以下步骤操作: #### 安装 使用以下命令安装 `vue-clipboard2`: ```bash cnpm install vue-clipboard2 --save-dev ``` 或 ```bash npm install vue-clipboard2 --save ``` #### 全局引入配置 在 `main.js` 中引入并配置 `vue-clipboard2`: ```javascript import VueClipboard from 'vue-clipboard2' VueClipboard.config.autoSetContainer = true // 可根据需要添加此配置 Vue.use(VueClipboard) ``` #### 组件中使用 有以下两种常见用法: ##### 指令方式 在 HTML 中使用指令绑定复制内容、成功和失败回调函数: ```vue <template> <div class="footerButton copyBank" v-clipboard:copy="b.BankNo" v-clipboard:success="onCopy" v-clipboard:error="onError"> {{ $t("m.recharge.copyBank") }} </div> </template> <script> export default { data() { return { b: { BankNo: '123456789' } }; }, methods: { // 复制成功执行的函数 onCopy(e) { this.isShowCopy = true; this.showCopyResult = this.$t("m.recharge.copySuccess"); }, // 复制失败执行的函数 onError(e) { this.isShowCopy = true; this.showCopyResult = this.$t("m.recharge.copyFail"); } } }; </script> ``` ##### 方法调用方式 在按钮点击事件中调用 `$copyText` 方法: ```vue <template> <button @click="copy">复制</button> </template> <script> export default { methods: { copy() { this.$copyText('复制内容').then(() => { console.log("复制成功!"); }).catch((e) => { console.error("复制失败", e); }); } } }; </script> ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值