首页 > 其他分享 >vue 实现复制功能

vue 实现复制功能

时间:2023-07-25 15:14:55浏览次数:45  
标签:功能 vue 标签 clipboard 复制 input copy document

不使用插件

不使用插件,可以使用input标签,然后通过execCommand(‘copy’)函数实现复制功能。

复制input标签中的内容

<template>
  <div id="app">
    请输入你需要复制的内容:<input id="copy" v-model="mes"/>
   <button v-on:click="copy()">复制</button>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      mes: ''
    }
  },
  methods: {
    copy () {
      //获取input对象
      var input = document.getElementById('copy')
      //选中input标签
      input.select()
      //执行复制
      document.execCommand('copy')
      this.$message.success('success!')
    },
  },
}
</script>

复制不是标签中的内容

<template>
  <div id="app">
   <button id="copy" v-on:click="copy()">复制</button>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      mes: '这就是需要复制的内容!'
    }
  },
  methods: {
    copy () {
      //创建input标签
      var input = document.createElement('input')
      //将input的值设置为需要复制的内容
      input.value = this.mes;
      //添加input标签
      document.body.appendChild(input)
      //选中input标签
      input.select()
      //执行复制
      document.execCommand('copy')
      //成功提示信息
      this.$message.success('success!')
      //移除input标签
      document.body.removeChild(input)
    },
  },
}
</script>

使用插件(Clipboard)

1、在项目目录下安装Clipboard插件
cd 项目目录
npm install clipboard --save

2、导入插件
//全局导入,在main.js中导入(可选)
import clipboard from ‘clipboard’
Vue.prototype.clipboard = clipboard
//局部导入,在对应文件导入
import clipboard from ‘clipboard’

3、vue文件

<template>
  <div id="app">
   <button id="copy" :data-clipboard-text="mes" v-on:click="copy()">复制</button>
  </div>
</template>

<script>
import Clipboard from 'clipboard'
export default {
  name: 'App',
  data() {
    return {
      mes: '这就是需要复制的内容!'
    }
  },
  methods: {
    copy () {
      let _this = this
      let clipborad = new Clipboard('#copy')
      //复制成功
      clipboard.on('success', function() {
        _this.$message.success('复制成功!')
        clipboard.destory()
      })
      //复制失败
      clipborad.on('error', function() {
        _this.$message.error('复制失败!')
        clipboard.destory()
      })
    },
  },
}
</script>

 

标签:功能,vue,标签,clipboard,复制,input,copy,document
From: https://www.cnblogs.com/heibaiqi/p/17579879.html

相关文章

  • vue的router文件里面import路径的时候ts报红色下划线
    Cannotfindmodule'@/views/index/index.vue'oritscorrespondingtypedeclarations.ts(2307)ViewProblem(Alt+F8)Noquickfixesavailable   解决方法在vite-env.d文件中新增declaremodule"*.vue"{  import{DefineComponent}from&......
  • Vue3组件二次封装
    naive-ui的n-input举例<template><n-inputclearableplaceholder=""v-bind="$attrs"><templatev-for="(value,name)in$slots"#[name]="slotData">......
  • Vue使用v-viewer插件实现图片预览和缩放和旋转等功能
    科普:v-viewer简单来说:v-viewer是一款支持vue项目中的图片浏览组件,它支持图片旋转、缩放、翻转等操作,支持配置化.非常强大官网目录:v-viewer安装依赖直接执行命令:npminstallv-viewer--save引入并使用依赖下载完成之后,就可以配置了,具体操作就是引入并使用依赖了。找到vu......
  • 【HarmonyOS】实现从视频提取音频并保存到pcm文件功能(API6 Java)
    ​ 【关键字】视频提取类Extractor、视频编解码、保存pcm文件 【写在前面】在使用API6开发HarmonyOS应用时,通常会开发一些音视频媒体功能,这里介绍如何从视频中提取音频保存到pcm文件功能,生成pcm音频文件后,就可使用音频播放类AudioRenderer进行播放了。这里主要介绍从视频提......
  • PC微信 3.9.6 正式版终于来,大家一起来看看更新的功能
    今天给大家分享PC微信3.9.6 内测版本新增了哪些功能,带大家一起来看看吧!PC微信3.9.6内测官方更新日志PC微信内测依旧和之前一样,只有你有申请过之前版本的内测的话,获取到权限之后就可以一直进行体验内测的版本,不然你会没有权限进行体验。本次的PC微信3.9.6内测更新的日志:-可......
  • vue2-ace-editor基础配置
    简介Ace是一个用JavaScript编写的可嵌入代码编辑器。它与Sublime、Vim和TextMate等原生编辑器的功能和性能相匹配。它可以很容易地嵌入到任何网页和JavaScript应用程序中。Ace被维护为Cloud9IDE的主要编辑器,并且是MozillaSkywriter(Bespin)项目的继承者。快速开始......
  • 2023-07-25 html中引入vue,报错:Vue is not a constructor ==》引用的vue版本不兼容导致
    报错代码:我使用的vue外链https://cdn.jsdelivr.net/npm/vue,该外链引用的是最新的[email protected]版本,而我的vue写法为vue2.0版本的写法,故而不兼容。解决方案:引用指定版本的vue......
  • RTSP/Onvif视频服务器LntonNVR(源码版)平台鉴权功能的应用场景和意义
    LntonNVR平台是基于RTSP/Onvif协议的视频接入、处理及分发平台,可以分发出RTSP、RTMP、WS-FLV、HTTP-FLV、HLS、WebRTC等格式的视频流,还可以提供API接口,便于用户调用集成。用户也能够直接将流地址放到第三方播放器进行播放。感兴趣的朋友也可以去CSDN(https://blog.csdn.net/LNTON)......
  • openpyxl模块--------------------------合并单元格功能
    #!/usr/bin/envpythonfromopenpyxlimportWorkbookfromopenpyxl.stylesimportAlignmentbook=Workbook()sheet=book.activesheet.merge_cells('A1:B2')cell=sheet.cell(row=1,column=1)cell.value='Sunnyday'cell.alignment=Alignment(h......
  • 视频编辑重新定义!Premiere Pro 2023 Mac版新增多种功能
    随着AI的不断发展,人工智能的工作方式已经从“人脑”进化到“机器”,而它的最终目标,就是将人类最复杂的工作交给AI。AI也在不断地深入理解人类,提高人类智能。在视频编辑方面,PremierePro2023mac新增了许多功能与以前最大不同之处:它对图片编辑方式进行了重新定义,可以让用户能够......