Clipboard 通过按钮一键复制图片和文本

Clipboard 通过按钮一键复制图片和文本

找了很多资料,发现通过 Clipboard 插件复制图片时,只支持 png 图片。下面给出解决办法,可以复制jpg、jpeg等类型的图片。

步骤

  • 后端传过来的是jpeg图片的url, (其中 url 需要是完整的格式,如http://xxx.jpeg)拿到后新建一个画布canvas把img加载到画布。
  • 将 url 转成 png 格式,然后图文写入剪切板

关键点

  • img加载也要使用 async 函数和 await 关键字(不用的话,转换格式会发生在你写入剪切板之后,导致复制失败)
    在这里插入图片描述

下面给出源码(注释写的有点多QAQ,方便自己理解)

async copy(url,msg) {try {if (url) {this.imgUrl = this.picServer+urlvar canvas = document.createElement('canvas')  //创建画布let img = new Image()  //创建一个 Image 对象img.setAttribute("crossOrigin", 'Anonymous') //跨越问题解决img.src = this.imgUrl //将 url 赋值给 img.src,相当于给浏览器缓存了一张图片img.onload = async () => {  // img加载完成canvas.width = img.width  canvas.height = img.height canvas.getContext('2d').drawImage(img, 0, 0) //加载img到画布this.imgUrl = canvas.toDataURL('image/png')  //转换图片,格式为png//写入剪切板const image = await fetch(this.imgUrl)const blob = await image.blob()const text = new Blob([msg], { type: 'text/plain' })const item = new ClipboardItem({'text/plain': text,'image/png': blob})await navigator.clipboard.write([item])this.$message.success('复制成功')}} else {const text = new Blob([msg], { type: 'text/plain' })const item = new ClipboardItem({'text/plain': text})await navigator.clipboard.write([item])this.$message.success('复制成功')}} catch (e) {this.$message.error('浏览器版本过低不支持,请升级浏览器')}},

如果看不懂,建议先参考下面这一篇大神的博客,再来看就好理解了。
剪贴板操作 Clipboard API 教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10846.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python编程技巧之复制粘贴技巧

Python编程技巧之复制粘贴技巧 Python作为一种富有表达力的编程语言,已经成为越来越多人的选择。但在编写代码时,有时候我们需要将别人的代码复制粘贴到自己的代码中。如何正确地复制粘贴代码?下面让我们来探讨一下。 复制和粘贴 在复制和…

chatgpt赋能python:Python中如何复制粘贴

Python中如何复制粘贴 Python作为一门高效且易于学习的编程语言,越来越受到开发者的欢迎。在编写Python程序的过程中,复制粘贴是非常常见的操作。但是,如果你不小心复制了不正确的代码,或者在粘贴时格式出错,就会浪费…

ChatGPT 在做什么… 以及它为何发挥作用?

作者:Stephen Wolfram,发表于 2023年2月14日原文链接:https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/翻译:DeepL,校对:李笑来文章字数:约 3.4 万字…

惊魂一夜--有福新闻UfqiNews升级到PHP8

有福新闻UfqiNews的老版本依然运行在 GWA2 PHP ( https://ufqi.com/dev/gwa2/ )上,去年底PHP编程语言本身升级到了PHP8, 获得好评,我们即打算择日升级GWA2 PHP到PHP8版本。 考虑到之前关于升级的经验教训,任何开源软件,能够在生产…

nexus7 android 6.0推送,Nexus用户有福了 Android 7.0即将推送

科客点评:终于来了!准备开始吃牛轧糖! 今年5月,谷歌正式发布最新的Android N系统。7月1日,谷歌都会在位于加州山景城的总部竖起一座新的雕像,将Android N正式定名为Android Nougat(牛轧糖)。现在&#xff0…

细节控有福了!显微镜级别的检测手法

最近科技圈最受关注的事大概就是RTX 4090显卡的发布了,该显卡的性能呈炸裂式增长,同时价格也奇高。 据悉4090显卡无论是在游戏、设计还是摄影上,都能够带来非常舒适畅快的体验。这感觉就对了,就是那种得不到的永远在骚动的感觉。…

oppo系统更新服务器,系统升级,这些OPPO用户有福了!

原标题:系统升级,这些OPPO用户有福了! OPPO 最近消息不断,上个月刚发布了一款旗舰新机,这个月又将推出Ace2,并且正式发布的时间已经确定了,就是这个月13号的晚上7点。而今日,官方也给…

GitHub 标星 2.9w+,我发现了一个宝藏项目,作为编程新手有福了!

大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻… 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的…

谷歌强势出手,人工智能学习者有福了,从此数据资产跨入搜索时代!

1995年,正是互联网方兴未艾之时,雅虎横空出世,雅虎以提供互联网各种信息目录起家,迅速崛起成为世界互联网巨头,整个互联网行业也迎来了门户网站时代。彼时的第一批互联网居民,要想在互联网上获取信息&#…

虚拟机连不上群晖服务器,没NAS也能体验群晖:VMware虚拟机安装DSM详细安装步骤...

2015-10-14 11:48:23 十一国庆遇到台风“杜鹃”,下了几天雨,蛮凉爽的。放晴后虽说去外面玩了几天,但最多时间还是呆在家里。最近对DSM比较感兴趣,网上看了几篇文章,如何安装及设置,对此有点初步的了解。手上没有NAS,但是想体验DSM的朋友有福了,抽空写了这篇文章,希望对…

鸿蒙碧 不忘前,不忘初心,荣耀手机包括老机型也将可升级华为研发的鸿蒙OS

原标题:不忘初心,荣耀手机包括老机型也将可升级华为研发的鸿蒙OS 根据之前曝光的消息,从4月份开始,华为将全面开启旗下自主研发系统HarmonyOS的升级适配,而且消息显示,华为大部分机型都将可以升级HarmonyOS…

Linux 游戏玩家有福了

ProtonDB 对 Steam 上前 10、前 100 和前 1000 款游戏的兼容性进行了评级,根据评级,前 1000 款游戏中有 77% 在 Linux 上运行良好,在前 100 款游戏中有 80% 在 Linux 上运行良好,而在前 10 名游戏中只有 4 个在 Linux 上运行良好。…

荣耀v20不支持鸿蒙,华为鸿蒙系统下月推送,这44款手机有福了!荣耀V20无缘升级...

原标题:华为鸿蒙系统下月推送,这44款手机有福了!荣耀V20无缘升级 从去年到今年,大家对于华为自主研发的“鸿蒙”系统非常期待,而余承东也在Mate40系列发布会上就明确表态,鸿蒙系统将在2021年第二季度推送。…

杜有福 c语言 第三版,C语言程序设计习题答案 杜有福.doc

C语言程序设计习题答案 杜有福.doc C语言程序设计习题答案习题一 C语言程序设计概述一、名词解释(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2(5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4(9)结构化的程序设计P9二、简述题1. 设计程序时应遵循哪些基本原则P4…

c语言编程设计杜有福,C语言程序设计习题答案 杜有福

C语言程序设计习题答案 习题一 C语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答&#xff1a…

【与ChatGPT相处两个星期让我刮目相看】

最近OpenAI的ChatGPT热度不减,作为一名IT老兵,怎么能够错过如此重量级的产品,就冲着微软的100亿美金,我也不得不给足面子,通过一系列爬山涉水、翻山越岭的准备工作,终于是能够一睹ChatGPT的庐山真容&#x…

斯坦福谷歌新研究爆火,用ChatGPT控制NPC,在虚拟世界构筑人类社会

放任25个AI共同生活,他们竟然在虚拟世界里构建人类社会! 前沿 时至今日,ChatGPT已经火遍全球,我们都见识到了AI的强大。但“生活”这个看似充满人情味的词,不负众望的和AI有了联系。 来自斯坦福和谷歌的一组研究人员…

R(2+1)D理解与MindSpore框架下的实现

一、R(21)D算法原理介绍 论文地址:[1711.11248] A Closer Look at Spatiotemporal Convolutions for Action Recognition (arxiv.org) Tran等人在2018年发表在CVPR 的文章《A Closer Look at Spatiotemporal Convolutions for Action Recognition》提出了R(21)D&a…

鸿蒙哪些机型可以用,鸿蒙2.0可以在哪些型号的手机中使用?鸿蒙2.0适配的机型介绍...

鸿蒙2.0全新系统已于昨日正式更新发布,在很多方面都具有非常不错的优越性,而且在一台手机中也可以实现多个系统同时运行,这在其他品牌的手机上是极少出现的,小编相信本次的更新一定可以为大家带来更棒的使用体验,而且适…

华为nova2s可以升级鸿蒙吗,华为Nova7怎么升级鸿蒙系统 Nova7升级鸿蒙系统步骤教程...

Nova7这一次在鸿蒙系统的升级名单之中在第二批次,那么华为Nova7怎么升级鸿蒙系统呢?为了解决各位小伙伴们疑惑的问题,小编收集了资料带来了Nova7升级鸿蒙系统步骤教程。 华为Nova7怎么升级鸿蒙系统 重要的事情多说几遍,一定记得备…