在vue脚手架中使用vue-clipboard2实现一键复制图片功能

在vue脚手架中使用vue-clipboard2实现一键复制功能(包含图片和文字)

tips:2020-12-3 该方法已失效 用了浏览器废弃的属性, 现在已经不支持了,实现需求请移步新方法


请查看 新方法

  1. 安装
npm install --save vue-clipboard2
  1. 在main.js里引入
import VueClipboard from 'vue-clipboard2'   
VueClipboard.config.autoSetContainer = true;//如果要复制没有特定按钮的文本内容,请添加此行
Vue.use(VueClipboard)

3.页面引用
html部分

<div ref="foo" >//通过ref获取dom
     <img :src="url" alt="">//盒子内为你需要复制的内容
     <p>盒子内为你需要复制的内容</p>
</div>
<el-button  type="primary" @click="copy">一键复制</el-button>

methods部分

    copy (e) {
      this.$nextTick(function () {//nextTick,当前dom渲染完毕的回调
        console.log('foo', this.$refs.foo)//打印获取的dom
        const selection = window.getSelection()
        const range = document.createRange()
        range.selectNode(this.$refs.foo)//传入dom
        selection.addRange(range)
        document.execCommand('copy')//copy是复制
        selection.removeAllRanges()/清除缓存
      })
    },
点击按钮 盒子内的图片文字都已一键复制了,粘贴出来也是图片和文字.
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
vue-clipboard2是一个Vue.js插件,用于实现Vue项目复制文本内容或图片功能。你可以通过安装和配置vue-clipboard2来使用它。 首先,你需要在你的项目安装vue-clipboard2插件。可以使用npm或yarn命令来安装: ``` npm install vue-clipboard2 ``` 或 ``` yarn add vue-clipboard2 ``` 然后,在项目的main.js文件引入vue-clipboard2插件,并配置autoSetContainer为true,以便自动设置复制容器: ``` import VueClipboard from 'vue-clipboard2' VueClipboard.config.autoSetContainer = true Vue.use(VueClipboard) ``` 接下来,你可以在你的Vue组件使用v-clipboard指令来实现复制功能。例如,当点击一个div时复制相应的内容,可以按照以下方式编写代码: ```html <template> <div v-clipboard:copy="code" v-clipboard:success="onCopy" v-clipboard:error="onCopyError">点击复制</div> </template> ``` ```javascript data: function() { return { code: '我是复制的内容' } }, methods: { onCopy: function(e) { alert('复制内容 ' + e.text + '成功!'); }, onCopyError: function() { alert('您的手机系统不支持自动复制,请手动复制!'); } } ``` 这样,当点击该div时,相应的内容将被复制到剪贴板,并触发相应的成功或失败回调函数。 如果你想复制图片,可以将img标签包装在一个div,并在div上添加v-clipboard指令。例如: ```html <div v-clipboard:copy="code" v-clipboard:success="onCopy" v-clipboard:error="onCopyError"> <img src="xxxx" alt=" " /> </div> ``` 这样,当点击该div时,图片将被复制到剪贴板

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值