放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

      • vue 配置
      • vue环境
      • vue国际化
      • vue指令
      • vue页面刷新
      • vue混入
      • vue-other
      • vue二维码
      • vue防抖节流
      • vue svg
      • vue图片
      • vue echarts图表
      • vue复制
        • 复制剪切板
          • 工具类复制
          • 使用插件 clipboard
    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2021-02-22

vue复制

# 复制剪切板

# 工具类复制

/**
 * 复制内容到粘贴板
 * content : 需要复制的内容
 * callback : 回调函数
 */
export const copyToClip = function (content, callback) {
  var aux = document.createElement('input')
  aux.setAttribute('value', content)
  document.body.appendChild(aux)
  aux.select()
  document.execCommand('copy')
  document.body.removeChild(aux)
  callback()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

使用

// 复制链接
copyLink (item) {
  // 复制剪切板
  copyToClip(item.shareUrl, () => {
    this.$message({
      message: '复制成功',
      type: 'success'
    })
  })
},
1
2
3
4
5
6
7
8
9
10

# 使用插件 clipboard

  • 1.安装依赖 npm install clipboard --save

  • 2.使用

<span
  data-clipboard-action="copy"
  class="copyLink"
  :data-clipboard-text="orderData"
  @click="copyLink"
  >{{ orderData }}</span
>
1
2
3
4
5
6
7
import ClipboardJS from 'clipboard';
copyLink() {
  const clipboard = new ClipboardJS('.copyLink');
  clipboard.on('success', () => {
    console.log('my console复制成功 : ');
  });
  clipboard.on('error', () => {
    console.log('my console复制失败 : ');
  });
},
1
2
3
4
5
6
7
8
9
10
  • 3.注意点如果DOM事件为循环

:id="copyLink${scope.row.id}" 需要把new ClipboardJS里面的DOM改为变量拼接 new ClipboardJS(#copyLink${id});

clipboard改为vue变量

copyLink (id) {
  // 处理多个点击事件触发问题 因为每次进页面的时候都会new一个Clipboard, 所以每次都会多new出一个
  if (this.clipboard) {
    this.clipboard.destroy()
  }
  this.clipboard = new ClipboardJS(`#copyLink${id}`)
  this.clipboard.on('success', () => {
    this.$message({
      message: '复制成功',
      type: 'success'
    })
  })
  this.clipboard.on('error', () => {
    console.log('my console复制失败 : ')
  })
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
更新时间: 3/22/2021, 4:43:19 PM
vue echarts图表
vue 原理汇总

← vue echarts图表 vue 原理汇总→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式