Vue中结合clipboard实现复制功能
程序员文章站
2022-05-21 21:26:42
首先现在Vue中引入clipboard 在需要使用的组件中import 引入clipboard clipboard的实际使用 不论是单按钮复制还是多按钮复制,一定要在页面加载DOM完成后先New出来具有复制功能的按钮,如果在函数内再New那么可能会出现点击复制按钮两次,才复制成功的现象,如下: 绑定 ......
首先现在vue中引入clipboard
npm install clipboard --save
在需要使用的组件中import 引入clipboard
import clipboard from 'clipboard';
clipboard的实际使用
不论是单按钮复制还是多按钮复制,一定要在页面加载dom完成后先new出来具有复制功能的按钮,如果在函数内再new那么可能会出现点击复制按钮两次,才复制成功的现象,如下:
mounted() { var copybtn = document.getelementsbyclassname('btn') this.clipboard = new clipboard(copybtn); } <!--并不一定非要在mounted中也可以在其他周期内, 只要页面已经加载完dom即可,如果是动态生成可以使用nexttick中new。-->
绑定复制内容的方式有以下几种:
<!--第一种直接绑定在按钮上--> <button class="marleft10 btn" style="float: right;border: none;" :data-clipboard-text="2" @click="copy()">复制 </button> <!--第二种单个复制按钮动态获取需要复制的内容--> <input type="text" v-model="copycontent" id="copy_text" style="opacity: 0"> <button ref="copy" data-clipboard-action="copy" data-clipboard-target="#copy_text" @click="copy">复制</button> <!--第三种可以在new clipboard时设定要复制的内容--> new clipboard('copybtn',function(){ return <!--要复制的内容--> }) copy(){ let _this = this <!--如果在内部new会出现点击两次在复制成功的现象所以还请各位多多注意--> clipboard.on('success', function () { toast('复制成功') _this.destroy() <!--销毁缓存,然后在重新new这样不会出现点击复制上出现之前复制的内容的情况--> _this.clipboard = new clipboard(copybtn); }) clipboard.on('error', function () { toast('复制失败,请手动复制') }) }
以上是笔者自己在实际中遇到的问题及解决办法并不适用所有,仅供参考,如有不对的地方还请多多之指正,共同学习进步
上一篇: 喘息性支气管炎应该注意什么
下一篇: es6 常用方法
推荐阅读
-
【Vue.js实战案例】- Vue.js全家桶递归组件实现绩效考核系统中组织层级结构和选人功能
-
用Vue.js在浏览器中实现裁剪图像功能
-
vue 实现复制内容到粘贴板clipboard的方法
-
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
-
vue 使用element-ui中的Notification自定义按钮并实现关闭功能以及如何处理多个通知
-
Vue中结合clipboard实现复制功能
-
Vue Cli与BootStrap结合实现表格分页功能
-
vue中通过使用$attrs实现组件之间的数据传递功能
-
vue实现codemirror代码编辑器中的SQL代码格式化功能
-
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知