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

news2024/11/25 12:04:42

使用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.coloradmin.cn/o/749892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git安装教程

前言 Git是一个开源的分布式版本控制系统,可以有效、高速地处理从小到大的项目版本管理。下面详细的用图文形式介绍一下git安装过程(记录一下git安装过程供参考) 一、下载git 打开git官网地址:https://git-scm.com/进行下载&am…

适合宝妈和学生党的副业,在家就可以做的兼职,实现高质量躺平

如果工资不够高,那就会让人过得很拮据。因此,很多人都希望可以通过兼职或副业来增加收入。然而,找到可靠的副业却并不容易,还会面临各种困难。 跟大家介绍七种可行的兼职副业,希望能为那些想增加收入的职场人员提供一…

第四章:DeepLabV2——使用深度卷积神经网络、空洞卷积和全连接条件随机场进行语义图像分割

0.摘要 在这项工作中,我们使用深度学习来解决语义图像分割任务,并做出了三个实验证明具有实际价值的主要贡献。 首先,我们强调通过上采样滤波器进行卷积,或者称为“空洞卷积”,在密集预测任务中是一种强大的工具。空洞…

Langchain-ChatGLM配置文件参数测试

1 已知可能影响对话效果的参数(位于configs/model_config.py文件): # 文本分句长度 SENTENCE_SIZE 100# 匹配后单段上下文长度 CHUNK_SIZE 250 # 传入LLM的历史记录长度 LLM_HISTORY_LEN 3 # 知识库检索时返回的匹配内容条数 VECTO…

谈谈你对 binder 的理解?

面试官提了一个问题,我们来看看 😎、😨 和 🤔️ 三位同学的表现如何吧 😎 自认为无所不知,水平已达应用开发天花板,目前月薪 10k 面试官️:谈谈你对 binder 的理解 😎&a…

Unity 限制范围-限制在4分之一圆柱形范围内活动

在我的游戏中,玩家的两只手操控中,不想让他们的手围着自己在一个圆形范围内随便乱跑,左手只想让他在左上角,右手在右上角范围活动。所以我制作这样一个算法来实现。 首先用Dot函数划分出4个区域,然后根据区域计算修正…

C++ | 仿函数与priority_queue

目录 前言 一、初始仿函数 1、仿函数是什么 2、仿函数的使用 二、优先级队列 1、 优先级队列的基本概念 2、堆的储存结构与结点之前关系 3、堆的使用 4、堆的模拟实现 前言 本文主要介绍优先级队列与仿函数,优先级队列实际上是我们在数据结构中学的堆&…

02 | conda的使用

1 前提 Conda是一个在Windows、macOS、Linux和z/OS上运行的开源软件包管理系统和环境管理系统。Conda快速安装、运行和更新软件包及其依赖项。Conda可以在本地计算机上轻松创建、保存、加载和切换环境。它是为Python程序创建的,但它可以为任何语言打包和分发软件。…

Tomcat 8.5 源码分析

一、获取源码并启动程序 获取教程地址 总体架构 二、Tomcat的启动入口 Catalina类主要负责 具体的管理类,而Bootstrap类是启动的入口(main方法)。 /*** Main method and entry point when starting Tomcat via the provided* scripts.** param args Command lin…

C# Post 接口请求样例

很久没有写接口了&#xff0c;正好今天写到了接口&#xff0c;记录一下 封装Http Post请求&#xff0c;这里的请求头是 request.ContentType “application/json”; 复制后根据实际去修改&#xff0c;不要生搬硬套搞拿来主义&#xff1a; /// <summary>/// 发送http请求…

Spring Cloud 远程接口调用OpenFeign负载均衡实现原理详解

环境&#xff1a;Spring Cloud 2021.0.7 Spring Boot 2.7.12 配置依赖 maven依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency&…

什么是XSS攻击及其类型和危害

什么是XSS攻击及其类型和危害 跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称 XSS&#xff09;是一种常见的网络安全漏洞&#xff0c;攻击者通过在受害者的浏览器中注入恶意脚本&#xff0c;从而在受害者的浏览器端执行恶意代码&#xff0c;从而实现攻击目的。…

在CSDN博客平台上吸引铁粉诀窍

&#x1f3c6;荣誉认证&#xff1a;51CTO博客专家博主、TOP红人、明日之星&#xff1b;阿里云开发者社区专家博主、技术博主、星级博主。 ⭐本文介绍⭐ 在社交媒体时代&#xff0c;拥有一批忠实的粉丝对于博主来说非常重要。这些铁粉不仅能够给予支持和鼓励&#xff0c;还能为…

第十八章 番外篇:混合精度训练

参考教程&#xff1a; https://pytorch.org/tutorials/recipes/recipes/amp_recipe.html?highlightamp https://pytorch.org/docs/stable/amp.html https://arxiv.org/pdf/1710.03740.pdf https://zhuanlan.zhihu.com/p/79887894 文章目录 原理float 32float 16混合精度 代码实…

cmake编译mingw下使用的zlib

目录 一、准备 二、cmake构建 三、make编译 一、准备 zlib Home Site zlib1.2.11&#xff08;2017.2.15&#xff09; 二、cmake构建 有cmakeLists.txt&#xff0c;直接用cmake进行构建 然后点击generate&#xff0c;接下来只能用命令行编译&#xff0c;在build目录执行…

选购螺杆支撑座要考虑哪些因素?

为了可以保证螺杆支撑座的使用效果&#xff0c;同时也能够发挥出更好的使用功能&#xff0c;避免出现各种质量隐患&#xff0c;建议大家在购买的时候一定要在专业正规的厂家进行选购&#xff0c;那么&#xff0c;我们在选购的时候要考虑哪些方面的因素呢&#xff1f; 1、考虑到…

曲柄滑块运动学求解基于Matlab

参考文档&#xff1a; 曲柄滑块机构运动分析..doc-原创力文档 偏置曲柄滑块机构的运动学分析 - 豆丁网 偏置式曲柄滑块机构仿真与运动分析 - 豆丁网 https://www.cnblogs.com/aksoam/p/17013811.html function main %输入已知数据 close all clear; i1100; i2300; e56; hd …

统一异常处理,自定义异常

目录 一、制造异常 Swagger中测试 二、统一异常处理 1、创建统一异常处理器 2、测试 三、处理特定异常 1、添加依赖 2、添加异常处理方法 3、测试 4、恢复制造的异常 四、自定义异常 1、创建自定义异常类 2、添加异常处理方法 3、修改Controller 4、测试 返回异…

3.1 Bootstrap 字体图标(Glyphicons)

文章目录 Bootstrap 字体图标(Glyphicons)什么是字体图标&#xff1f;获取字体图标CSS 规则解释带有导航栏的字体图标定制字体图标定制字体尺寸定制字体颜色应用文本阴影 Bootstrap 字体图标(Glyphicons) 本章将讲解字体图标(Glyphicons)&#xff0c;并通过一些实例了解它的使用…

【SpringBoot】SpringBoot的自动配置源码解析

文章目录 1. SpringBoot的自动配置概念2. SpringBoot自动配置的原理3. EnableAutoConfiguration4. 常用的Conditional注解 1. SpringBoot的自动配置概念 SpringBoot相对于SSM来说&#xff0c;主要的优点就是简化了配置&#xff0c;不再需要像SSM哪有写一堆的XML配置&#xff0…