一款实用的web截图工具(一)

article/2025/9/21 20:11:07
码云地址: 码云


github地址: github




kscreenshot


介绍
web截图工具的功能实现基于Canvas技术。其功能主要包括截图,下载,复制以及在截图过程中通过工具栏对截图进行绘制。


使用
具体使用方法请戳  码云  GitHub


实现方式
本文将会根据代码中的src文件夹里面的每个文件逐一介绍。


首先先看入口文件kss.js。
let kss = (function () {let instancelet kss = function (key, getAbsolutePath) {if (instance) {return instance}this.kss = null...this.init(key)return instance = this}kss.prototype.init = function (key) {...}kss.prototype.start = function () {...}kss.prototype.end = function () {...}return kss
)()
上述代码通过立即执行函数生成一个构造函数,该函数有两个参数:key,getAbsolutePath;其中第一个参数key为键盘中的keyCode,用以开启截图模式。第二个参数为一个回调函数,主要是解决实现复制功能时,只能使用绝对路径的问题。构造函数中的if语句让该构造函数是一个单例模式,只允许生成同一个方法。this.kss = null及...是一些构造函数的属性和方法。this.init(key)用以初始化截图工具。在构造函数的下方,在其原型上定义了3个方法:init,start,end。

//init方法
kss.prototype.init = function (key) {const that = thisdocument.addEventListener('keydown', isRightKey.bind(null, key))function isRightKey (key, e) {if (e.keyCode === key && e.shiftKey && !that.isScreenshot) {that.isScreenshot = truethat.start()that.end()}}
}

这是初始化函数,它有一个key的参数,用以开启截图模式。函数中,在document上添加了一个键盘按下事件,通过isRightKey函数我们可以得出,当用户按下了设定的key值,shift键以及不在截图状态时,将执行start,end函数。
//start方法
kss.prototype.start = function () {const that = thishtml2canvas(document.body, {useCORS:true}).then((canvas) => {that.kss = canvascss(canvas, {position: 'fixed',top: 0,left: 0,'z-index': 10000})canvas.id = 'kss'document.body.appendChild(canvas)let style = document.createElement('style')style.type = 'text/css'style.innerHTML = `.kssBody{cursor: url("${cursorImg}"), auto; user-select: none}`that.style = styledocument.head.appendChild(style)addClass(document.body, 'kssBody')canvas.addEventListener('mousedown', that.startDrawDown)})
}


开始函数,使用了html2canvas插件,将生成一个基本还原内容的Canvas。将该canvas放入body当中,并给其添加一个鼠标按下事件。该事件将在下面介绍。

//end方法
kss.prototype.end = function () {const that = thisdocument.addEventListener('keydown', endScreenShot)function endScreenShot (e) {if (e.keyCode === 27) {endAndClear(that)document.removeEventListener('keydown', endScreenShot)}}
}


结束函数,在document上添加一个键盘事件,当键盘按下esc键(即keyCode为27)时,将结束截图状态。


剩余部分下篇继续


一款实用的web截图工具(二)

http://chatgpt.dhexx.cn/article/Y7mY7xcK.shtml

相关文章

谷歌浏览器自带网页截屏工具的使用

在平时,我们开发时,经常需要在网页中进行截图,那么,今天来看看谷歌浏览器的截屏工具,首先我们需要打开开发者模式,如下图: 打开开发者模式 然后,同时按"shiftcommandp"按钮…

【截取整个网页】Chrome浏览器快速截屏,高清截图

Chrome版本78,window 10系统 第一步:打开 Chrome 浏览器,输入网址,例如输入网址:https://www.golianghao.com。 第二步:Ctrl shift i 打开浏览器调试模式。 第三步:Ctrl shift p 打开浏览…

Chrome 扩展程序——FireShot:网页截图工具

FireShot是一个简单实用的网页截图工具,可以截取整个页面、可见部分和选定区域,并且支持拖动加载截图,非常方便。个人感觉比另一款Chrome网页截图工具:注释&批注插件 好用。 使用方法 截图 FireShot的使用方法非常简单&a…

浏览器截取网页截图

第一步:打开chrome开发者工具(PC)。 打开你想截图的网页,然后按下 F12(右键->检查)(macOS 是 option command i)调出开发者工具,接着按「Ctrl Shift P」&#xff…

eyeurl—一款网页批量截图工具

eyeurl使用说明 开发说明 eyeurl由作者:云小书 开发,源于日常渗透测试中,信息收集到的url过多,挨个打开查看比较繁琐,且效率极低,网上有大佬开发的eyewitness,且ui布局各方面都比较完善&#…

网页截图小技巧——利用浏览器自带功能即可(无需安装插件)

文章目录 网页截图步骤一:打开开发者工具步骤二:寻找文章主体页面步骤三:右键完成截取步骤四: 查看所截取的图片 网页截图 步骤一:打开开发者工具 按下F12 键选择需要截屏的网页 步骤二:寻找文章主体页…

【软件技巧】【截图】浏览器自带的全网页截图工具

🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向) 🐳博客主页:花神庙码农 地址:https://blog.csdn.net/qxhgd 🌐系列专栏:善假于物 📰如…

推荐几款网页截图工具可以全屏截图,也可对图片编辑

很多人在工作和生活中都会遇到这样的问题,有些内容需要截屏保存下来。所以我们每个人都会遇到网页截图这样的问题,有的甚者,我们还需要对截图进行编辑处理,加一些注释和说明等。我就是从这样痛苦的过程中走过来的,所以今天给大家介…

macOS 内置的端口扫描工具

于有端口扫描需求的 Mac 用户来说,其实 macOS 网络实用工具中内置了一款端口扫描程序,这意味着若没有高级的需求,您不需要再额外安装第三方的端口扫描工具(例如 nmap)来进行端口扫描。 macOS 网络实用工具 macOS 内置…

端口扫描工具 Nmap(一)

端口扫描在百度百科上的定义是: 端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关),但是端口扫描不但可以为黑客所利用,同时…

高级端口扫描工具

高级端口扫描程序可查看哪些服务在哪个端口上运行、开放端口数量、连接的交换机,并帮助保护网络免受未经授权的访问。作为网络管理员,扫描网络中的开放端口、这些端口已连接到的交换机以及在其上运行的服务,并将已知服务与已识别的服务与高级…

网络端口扫描器.扫描开放端口.TCP/UDP的Socket通信.支持IP地址网段范围的批量扫描.支持多线程操作,提高扫描效率

网络端口扫描器.扫描开放端口 本工具可以扫描一个指定IP的1~65535端口是否开放了TCP/UDP的Socket通信。 特点: 支持TCP/UDP的Socket通信;支持IP地址网段范围的批量扫描;支持多线程操作,提高扫描效率; 下载地址&…

在线端口检测 - 端口扫描 - 端口开放检查

如何扫描服务器开放端口?一刀工具箱提供在线检测、扫描域名或者 ip 的端口是否开放。 代码片段 static function getFromLocalIpPort($domain){$ports [21,22,23,25,53,69,80,110,161,443,1433,1521,1863,3306,3389,5631,5632,5000,7001,8080,1080];$out_da…

在 Linux 环境下,我用了这款端口扫描工具~

点击上方“杰哥的IT之旅”,选择“置顶公众号” 干货、福利第一时间送达! 为了保护计算机不受攻击和各种病毒、木马的侵扰,其实我们可以在网络设备上采取措施,对某些数据包进行阻挡、过滤等,但重要的还是用户需要有一定…

信息收集之 端口扫描

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」:此文章已录入专栏《网络安全快速入门》 为什么要扫描端口? 知道主机开放了哪些端口,就可以…

端口扫描工具NMAP(个人总结)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、扫描类型主机发现扫描技巧指定端口和扫描顺序服务版本识别脚本扫描OS识别 二、端口状态类型常见类型演示默认方式nmap [靶机]全面扫描:nmap -A …

Mac端口扫描工具

端口扫描工具 Mac内置了一个网络工具 网络使用工具 按住 Command 空格 然后搜索 “网络实用工具” 或 “Network Utility” 即可 域名/ip转换Lookup ping功能 端口扫描 https://zhhll.icu/2022/Mac/端口扫描工具/ 本文由 mdnice 多平台发布

工具开发——端口开放扫描

0x00 前言 使用Python对目标主机开放的TCP端口进行多线程扫描,编程思路: 1、定义portscan函数,创建socke对象,进行TCP端口扫描 2、启动多线程运行PortScan函数 3、记录并输出扫描结果与时间 0x01 运行原理 基于TCP连接建立时的三次握手来判断目标端口是否开启: 0x02 创建…

1.3端口扫描:利用Nmap工具进行端口扫描

1、预备知识:Nmap介绍 nmap的功能:端口扫描、主机发现、服务/版本识别、操作系统识别、网络路由跟踪、Nmap脚本引擎; nmap的扫描方式:Half-open scanning,默认扫描方式;TCP connect;TCP ACK sca…

【端口扫描工具】mascan核心使用

目录 端口扫描masscan: 1.1、基础: 1.2、单端口扫描: 1.3、多端口扫描 1.4、扫描一系列端口 1.5、快速扫描 1.6、排除目标 1.7、保存结果 1.8、其他命令: 端口扫描masscan: 1.1、基础: A类子网掩码…