modern-screenshot
开源的浏览器端 JavaScript 截图库,用一行函数把 DOM 节点渲染成 PNG、JPEG、WebP 或 SVG,支持 Web Worker 连续调用实现每秒多次截图,适合前端开发者给页面区块加导出图片或生成分享卡片的功能。
modern-screenshot 是一个跑在浏览器里的 JavaScript 库,做的事很具体:给它一个 DOM 节点,它把这个节点渲染成图片。底层用 HTML5 canvas 和 SVG 拼出画面,输出可以是 PNG、JPEG、WebP、SVG 的 dataURL,也可以是 Blob、Canvas 元素或直接可插入页面的图片元素。它从 html-to-image 分支而来,在 GitHub 上以 MIT 协议开源。
主要功能
调用方式是一行函数加一个节点:domToPng、domToJpeg、domToWebp、domToSvg 分别对应不同输出格式,domToBlob 和 domToCanvas 则拿到二进制或画布对象。安装走 npm,也可以直接用 CDN 的 script 标签引入,甚至在浏览器控制台里临时加载脚本对页面截图。
它支持复用上下文和 Web Worker:用 createContext 建一个截图上下文,配合 worker 连续调用,可以做到每秒多次截图,适合需要批量出图的场景。选项里还有 debug 和 progress 回调,能看到当前处理到第几张资源。
适合谁
前端开发者、做网页分享卡片或导出图片功能的产品团队。典型用法是把页面上的某个区块转成图片让用户下载,或者生成社交平台分享图。
限制
README 里明确提醒:跨域资源(CORS)会导致部分内容嵌入失败,图片、字体等外部资源需要服务端配合。另外 CSS 计数器(content: counter())目前还无法克隆,属于待办事项。仓库有 66 个未关闭的 issue,使用前值得翻一翻有没有和自己场景相关的问题。