clipboard复制图片

需求

上面给了一个任务,说要实现在浏览器一键拷贝图片到剪切板,并且可以粘贴到其他编辑窗口。

实现

首先感谢阮老师的文章,给我了很大的帮助https://www.ruanyifeng.com/blog/2021/01/clipboard-api.html

本实现有几个前提

1、网站必须是Https协议

2、复制到图片只能是png格式

具体原因在阮老师的文章有具体指出,本人不精,故不班门弄斧。

 

直接贴代码 引用Clipboard组件

import Clipboard from 'clipboard'

 复制图片方法

async copyImg(url) {
      //请求图片数据
      const data =await fetch(url)
      //获取剪切板写入权限 
      navigator.permissions.query({name:'clipboard-write'}).then(async res=> {
        if(res.state ==='granted'){
            //获取流数据
          const blob =await data.blob()
          try{
              //向剪切板写入流数据
            await navigator.clipboard.write([
              new ClipboardItem({
                [blob.type]:blob
              })
            ])
            this.$message.success("复制成功")
          }catch (e){
            this.$message.error("复制失败!请打开图片后,单击右键复制图片。")
          }

        }
      })

    }

 

posted @   木之本末  阅读(803)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示