js原生点击按钮复制内容到粘贴板/修复(事件监听之后,原页面上组合键/右键不能复制到粘贴板)

前言: 有个小需求,需要写成组件,在当前页面多次重复写的一个icon,点击复制当前内容到粘贴板,为了方便封装成组件了,具体就不在这赘述了
注意: 原生的粘贴方法里面不能去放异步操作,会失效= =最好在父组件确定字段,直接一次性拿到所有内容
啰啰嗦嗦的独白: 可看可不看(因为我是详情页有默认反显值,默认值有外网有需要脱敏值,还好跟后端商量了下,一次性接口返回给我就行了,我再塞给子组件里面的变量,点击的时候根据点击按钮的不同去获取接口返回的不同的脱敏值)

// HTML
<template>
  <div>
    <Icon type='ios-copy' size='23' @click='copyTheClipboard' class='ios_copy'/>
  </div>
</template>
<script>
   export default ({
       name:'',
       prop: {
          pasteBoard: Object
       }
       data () {
          return {}
        },
      },
      created () {},
      methods: {
         copyTheClipboard () {
           let val = ''
           let that = this
           // 不同的位置点击传不同的值区分
           if (this.differentiate == 'name' ) {
              // 父组件传过来的默认脱敏值
              val = that.pasteBoard.customName
           }
           const save = function (e) {
              e.clipboardData.setData('text/plain', val) // 塞数据到剪贴板
              e.preventDefault();  // 阻止默认事件
           }
           document.addEventListener('copy', save);
           document.execCommand('copy'); // 复制
           that.$Message.success('复制成功')
           document.removeEventListener('copy', save); // **复制ok之后记得要移除绑定事件
         }
      }
   })
</script>
<style lang='less' scoped>
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值