首页 > 其他分享 >vue实现点击按钮一键复制功能

vue实现点击按钮一键复制功能

时间:2023-06-16 17:46:48浏览次数:39  
标签:vue console log 一键 alert 复制 按钮 input copy

点击复制按钮后,将内容一键复制下来,不用去选中复制

第一种直接使用js方式:

<div class="mask-cont">
   <p><input id="input" /></p>
   <button class="btns" @click="copyToClip">复制</button>
 </div>
 
copyToClip() {
    var input = document.getElementById("input");
    input.value = this.copyText; // 要复制的文本框的内容(此处是后端返回的内容)
    input.select(); // 选中文本
    document.execCommand("copy"); 
    alert("复制成功")
}
可以通过 display:none将input框隐藏

第二种使用插件方式(推荐):

安装插件

npm install --save vue-clipboard2

在main.js中引用

import VueClipBoard from 'vue-clipboard2'
 
Vue.use(VueClipBoard)

在页面中调用也有两种方式

第一种:value即是要复制的内容

<button @click="seccendCopy">第二种方式复制</button>
 
seccendCopy() {
      this.$copyText(this.value).then(
        function(e) {
          console.log("copy arguments e:", e);
          alert("复制成功!");
        },
        function(e) {
          console.log("copy arguments e:", e);
          alert("复制失败!");
        }
      );
}

第二种:

<template>
<div>
    <div>
      <textarea name="复制内容" id cols="30" rows="10" v-model="value"></textarea>
      <button
        v-clipboard:copy="value"
        v-clipboard:success="firstCopySuccess"
        v-clipboard:error="firstCopyError"
      >第一种方式复制</button>   
    </div>
    <div>
      <textarea name="粘贴内容" id cols="30" rows="10"></textarea>
    </div>
  </div>
</template> 
 
<script>
export default {
  data() {
    return {
      value: "A simple vuejs 2 binding for clipboard.js!"
    };
  },
  methods: {
    firstCopySuccess(e) {
      console.log("copy arguments e:", e);
      alert("复制成功!");
    },
    firstCopyError(e) {
      console.log("copy arguments e:", e);
      alert("复制失败!");
    }
  }
};
</script>

 

标签:vue,console,log,一键,alert,复制,按钮,input,copy
From: https://www.cnblogs.com/panwudi/p/17486145.html

相关文章

  • 【vue】vue全家桶是什么?
    Vue全家桶一般来说包括项目构建工具vue-cli、路由管理器vue-Router、状态管理模式vuex、网络请求库Axios、ui框架、打包工具webpack,下面我们分别介绍。1.项目构建工具:vue-cliVue.js+webpack的项目模板。Vuecli提供了强大的功能,用于定制新项目、配置原型、添加插件和检查webpac......
  • vue技术点归纳
    1.vue是什么?vue是一套构建用户界面的渐进式框架,核心库只关注视图层。vue和react相同点:1.都使用virtualDOM;2.提供了响应式(reactive);3.组件化(composable)的视图组件;4.都支持native方案;5.都支持SSR服务端渲染;6.都支持props进行父子组件通信;不同之处就是:1.数据......
  • 关于vue2路由跳转问题记录
    1.vue路由间跳转和新开窗口的方式(query,params)路由间跳转配置:query方式:参数会在url中显示this.$router.push({path:'路由地址',query:{msg:'helloworld'}})params方式:传参数据不会在导航栏中显示,需要配合路由的name属性使用。this.$......
  • Vue3 设置全局变量
    方式一:main.js设置全局变量importapifrom'@/api'app.config.globalProperties.$api=api使用全局变量,使用getCurrentInstance方法。//ctx.$api就是全局设置的变量const{proxy:{$api},}=getCurrentInstance();//ctx.$api就是全局设置的变量con......
  • 直播平台怎么搭建,vue 中判断数组中是否有重复的数据
    直播平台怎么搭建,vue中判断数组中是否有重复的数据  isRepeat(v){   letobj={}   for(letiinv){    if(obj[v[i]]){     returntrue    }    obj[v[i]]=true   }   returnfalse  },​ 以上就是......
  • vue+html2canvas生成寄几想要的海报
    需求:点击弹出一个弹窗,其中是某个作品内容的海报,需要呈现作品的内容+二维码 思路:获取作品内容渲染到弹窗中,生成包含分享链接的二维码,将整个界面转为图片,用户可以长按保存,并扫描识别。 方案及步骤:1.引入html2canvas实现生成图片的功能npminstall--savehtml2canvas 2......
  • Vue el-date-picker 日期组件的使用,需要初始化时间,初始化时间时候,注意 日期月份 补0
    Vueel-date-picker日期组件的使用需要初始化时间,初始化时间时候,注意日期月份补0https://www.cnblogs.com/zhoushuang0426/p/10606863.html一:显示年月<el-date-pickerv-model="selectMonth"type="month"placeholder="选择月"@change="jobSearch"va......
  • vue中this.$refs获取不到组件元素的解决办法
    vue中this.$refs获取不到组件元素的解决办法http://www.allyns.cn/info/162当我们在vue开发中遇到使用this.$refs报错获取不到组件元素时。<template><divclass="dataQueryEventGraphDialog"><hg-dialog:title="title":width="950":height="485&q......
  • vuex actions 和 mutations 分析,为什么官方建议 actions 里面不要直接修改 state, 为
    来自官方大大:区分actions和mutations并不是为了解决竞态问题,而是为了能用devtools追踪状态变化。事实上在vuex里面actions只是一个架构性的概念,并不是必须的,说到底只是一个函数,你在里面想干嘛都可以,只要最后触发mutation就行。异步竞态怎么处理那是用户自己的事情。vu......
  • 如何降低Vue.js项目中Webpack打包文件的大小?
    结论结论:vue中,直接引用文件,可以让打包文件最小。试验记录下面测试项目中引入一个Button组件的代价。基准工程大小:[raywill:shop]npmrunbuild>shop@build/Users/raywill/code/vue/shop>cross-envNODE_ENV=productionwebpack--progress--hide-modulesHash:d902d9dc5e......