当前位置:首页 > JavaScript

js实现自动截图

2026-02-02 13:28:55JavaScript

使用html2canvas库实现网页截图

html2canvas是一个流行的JavaScript库,可将网页元素或整个页面转换为Canvas图像。

安装库:

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 API手动实现截图

若需轻量级方案,可直接通过Canvas API捕获指定区域:

const captureElement = document.getElementById('target');
const canvas = document.createElement('canvas');
canvas.width = target.offsetWidth;
canvas.height = target.offsetHeight;
const ctx = canvas.getContext('2d');
ctx.drawImage(target, 0, 0, canvas.width, canvas.height);

// 导出为图片
const img = document.createElement('a');
img.download = 'capture.png';
img.href = canvas.toDataURL('image/png');
img.click();

使用第三方API(如Puppeteer)

适用于服务端自动化截图:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'screenshot.png' });
  await browser.close();
})();

浏览器原生API(实验性)

部分浏览器支持window.captureEvents(),但兼容性较差:

window.captureEvents().then(mediaStream => {
  const track = mediaStream.getVideoTracks()[0];
  const imageCapture = new ImageCapture(track);
  imageCapture.grabFrame().then(imageBitmap => {
    const canvas = document.createElement('canvas');
    canvas.width = imageBitmap.width;
    canvas.height = imageBitmap.height;
    const ctx = canvas.getContext('2d');
    ctx.drawImage(imageBitmap, 0, 0);
    canvas.toBlob(blob => {
      const url = URL.createObjectURL(blob);
      const a = document.createElement('a');
      a.href = url;
      a.download = 'capture.png';
      a.click();
    }, 'image/png');
  });
});

注意事项

  • 跨域内容需服务器配置CORS头。
  • 动态加载资源(如字体、图片)可能需预加载。
  • 大型页面可能导致内存问题,建议分区域截图。

js实现自动截图

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

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现验证码

js实现验证码

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

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promis…

css3结合js制作

css3结合js制作

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

vue实现截图

vue实现截图

Vue实现截图的方法 使用html2canvas库 安装html2canvas库,该库可以将DOM元素转换为Canvas图像。 npm install html2canvas 在Vue组件中引入并…

js实现图片轮播

js实现图片轮播

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