当前位置:首页 > JavaScript

js 实现截图

2026-01-16 12:58:49JavaScript

使用html2canvas库实现截图

html2canvas是一个流行的JavaScript库,可将HTML元素转换为Canvas,进而导出为图片。

安装库:

js 实现截图

npm install html2canvas

基础代码示例:

import html2canvas from 'html2canvas';

const element = document.getElementById('target-element');
html2canvas(element).then(canvas => {
  const imgData = canvas.toDataURL('image/png');
  const link = document.createElement('a');
  link.download = 'screenshot.png';
  link.href = imgData;
  link.click();
});

使用Canvas的toDataURL方法

若需截取Canvas自身内容,可直接使用其原生API:

js 实现截图

const canvas = document.getElementById('myCanvas');
const dataURL = canvas.toDataURL('image/jpeg', 0.8); // 80%质量
console.log(dataURL); // 输出Base64编码

浏览器原生API:MediaDevices.getDisplayMedia

适用于截取屏幕、窗口或标签页内容:

async function captureScreen() {
  const stream = await navigator.mediaDevices.getDisplayMedia({ video: true });
  const videoTrack = stream.getVideoTracks()[0];
  const imageCapture = new ImageCapture(videoTrack);
  const bitmap = await imageCapture.grabFrame();

  const canvas = document.createElement('canvas');
  canvas.width = bitmap.width;
  canvas.height = bitmap.height;
  const ctx = canvas.getContext('2d');
  ctx.drawImage(bitmap, 0, 0);
  videoTrack.stop();

  // 导出图片
  canvas.toBlob(blob => {
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'screen-capture.png';
    a.click();
  }, 'image/png');
}

注意事项

  • 跨域限制:若截图内容包含跨域图片,需确保图片服务器允许CORS。
  • 性能优化:对大范围DOM截图时,html2canvas可能较慢,建议限制截图区域。
  • 样式兼容性:某些CSS属性(如filter、transform)可能导致渲染差异。

扩展方案:第三方服务

若需云端截图,可考虑:

  • Puppeteer:通过Headless Chrome生成截图,适用于Node.js环境。
  • APIfox:提供网页截图API,直接通过HTTP请求调用。

以上方法覆盖了从前端DOM到屏幕的常见截图场景,可根据具体需求选择。

标签: 截图js
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const ch…

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Jav…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…