vue使用html2canvas实现一键截图并赋值到剪贴板,只截取当前显示器上可视的内容

news/2024/10/18 3:34:06/

使用html2canvasclipboard API实现整页截图并填充至剪切板。

访问剪切板的api只支持在https或者本地localhost上使用,如果是http,则无法使用
首先需要从npm安装html2canvas

npm install html2canvas

然后在代码中导入这个包:

import html2canvas from 'html2canvas'

之后绑定一个按钮来实现该功能,比如点击一个按钮,然后就开始截图当前页面并赋值到剪贴板。

    to_clipboard() {if (window.ClipboardItem) {html2canvas(document.getElementsByClassName('app-wrapper')[0], {x: window.scrollX,y: window.scrollY,height: window.innerHeight,width: window.innerWidth}).then(canvas => {// 将canvas转换为blob类型canvas.toBlob(blob => {// 创建一个图像剪贴板项const item = new window.ClipboardItem({ 'image/png': blob })// 使用Clipboard API将图片写入剪贴板navigator.clipboard.write([item]).then(() => {this.$message.success('Screenshot copied to clipboard')}).catch(error => {this.$message.error('Failed to copy screenshot to clipboard: ', error)})})})} else {this.$message.error('This browser does not support ClipboardItem.')}},

上述代码解释:document.getElementsByClassName('app-wrapper')[0]是获取当前需要截图的元素,如果想截取整个页面所有元素,可以使用如下代码:

// 获取要截图的元素(这里以body为例)
const element = document.body;
html2canvas(element).then(canvas => {

而对于下方的

x: window.scrollX,
y: window.scrollY,
height: window.innerHeight,
width: window.innerWidth

x表示的是从哪个高度开始截屏,y表示从哪个宽度开始截屏,height表示截取多高,width表示截取多宽。
如果不写的话,默认就是截取整个元素。
如图,我如果不写的话,截取的内容就特别长,因为该页面有滚动条,会把所有的内容都截下来。
在这里插入图片描述
写了之后,限制了宽高,就只展示当前显示器上所能看到的这一页内容,而不截取滚动条其它看不见的部分。


http://www.ppmy.cn/news/860370.html

相关文章

HarmonyOS + linkboy + 小熊派,能擦出怎样的火花?

关注「嵌入式大杂烩」,选择「星标公众号」一起进步! linkboy简介 linkboy是一门面向物联网、边缘计算、工业控制等领域的自研编程语言。linkboy官网地址: ❝ http://www.linkboy.cc/index.html ❞ (相关资料需要到官网下载&#x…

华为云MVP熊保松谈物联网开发:华为云IoT是首选,小熊派是神器

摘要:在AI、5G的技术驱动下,物联网行业的发展愈加如火如荼,开发者在技术的快速更迭间,也得乘风破浪跟上新技术的节奏。 在AI、5G的技术驱动下,物联网行业的发展愈加如火如荼,开发者在技术的快速更迭间&…

训练速度提升300倍,Niantic最新VPS视觉定位方案亮相

近年来在谷歌、Niantic等推动下,视觉定位对于AR应用的重要性越来越明显,尤其是在室内导航场景,定位精度可超越传统GPS方案。为了进一步提升视觉定位、深度视觉地图构建的准确性,Niantic Labs在CVPR 2023期间公布了ACE方案&#xf…

10大主流压力/负载/性能测试工具推荐

在移动应用和Web服务正式发布之前,除了进行必要的功能测试和安全测试,为了保证互联网产品的服务交付质量,往往还需要做压力/负载/性能测试。然而很多传统企业在试水互联网的过程中,往往由于资源或产品迭代速度等原因忽视了这一块工…

电脑上快速制作小一寸照片教程

在日常生活中,经常需要用到小一寸证件照,如果是用电子版的证件照照片,可以自己使用手机来进行自拍,然后借助一些证件照压缩(https://www.yasuotu.com/zjzys)工具来制作电子版的小一寸照片使用;如…

【Android Framework系列】第5章 AMS启动流程

1 AMS简介 AMS(Activity Manager Service)是Android中最核心的服务,管理着四大组件的启动、切换、调度及应用进程的管理和调度等工作。AndroidQ将Activity移到了ActivityTaskManagerService中,但也和AMS相关联。 AMS通过使用一些…

uniapp调接口出现跨域问题。

今天在写uniapp项目的时候,使用在线模拟接口的时候,出现跨域问题。 【问题描述】: ①在内嵌浏览器运行,不会出现跨域问题,好像是内嵌浏览器自动去掉了跨域问题。 ②在外部浏览器调用的时候会出现跨域问题。&#xf…

乐视手机卷土重来,贾跃亭借华为东风!

乐视手机卷土重来,贾跃亭借华为东风!