当前位置:首页 > 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实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

vue实现截图

vue实现截图

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

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…