JavaScript实现页面截图3种解决方案

 更新时间:2024年06月20日 11:05:07   作者:高树悲风  
网页截图是指将网页上的内容截取下来,并保存为图片的过程,下面这篇文章主要给大家介绍了关于JavaScript实现页面截图的3种解决方案,文中通过代码介绍的非常详细,需要的朋友可以参考下

1.html2canvas

npm install html2canvas

// 引入html2canvas库
import html2canvas from 'html2canvas';

// 设置定时器,每隔10秒执行一次截图操作
setInterval(async () => {
  try {
    // 将网页内容转换为canvas元素
    const canvas = await html2canvas(document.body);

    // 将canvas元素转换为图片文件base64
    const img = canvas.toDataURL('image/png');

    // 图片文件img 处理上床后端
    
  } catch (error) {
    console.error('截图失败:', error);
  }
}, 10000);

2、获取屏幕流转为图片

async function screenshot() {  
    // 获取屏幕流  
    const displayMediaOptions = {  
        video: {  
            cursor: "always"  
        }  
    };  
    const stream = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);  
  
    // 创建一个video元素来播放屏幕流  
    const video = document.createElement('video');  
    video.srcObject = stream;  
    await video.play();  
  
    // 创建一个canvas元素来截屏  
    const canvas = document.createElement('canvas');  
    canvas.width = video.videoWidth;  
    canvas.height = video.videoHeight;  
  
    // 将视频播放的内容绘制到canvas上  
    const context = canvas.getContext('2d');  
    context.drawImage(video, 0, 0, canvas.width, canvas.height);  
  
    // 将canvas内容转换为base64  
    const base64 = canvas.toDataURL();  
  
    // 关闭视频流  
    video.srcObject.getTracks().forEach((track) => track.stop());  
  
    return base64;  
}

3、让使用者在浏览器插件再去调用插件(不推荐)

总结

到此这篇关于JavaScript实现页面截图3种解决方案的文章就介绍到这了,更多相关js页面截图解决方案内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript动态加载重复绑定问题

    JavaScript动态加载重复绑定问题

    这篇文章主要介绍了JavaScript动态加载重复绑定问题,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • JS事件添加和移出的兼容写法示例

    JS事件添加和移出的兼容写法示例

    这篇文章主要介绍了JS事件添加和移出的兼容写法,结合实例形式分析了javascript针对不同浏览器实现实现添加与移除事件的相关技巧与使用方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • Javascript实现返回上一页面并刷新的小例子

    Javascript实现返回上一页面并刷新的小例子

    这篇文章主要介绍了Javascript实现返回上一页面并刷新的小例子,有需要的朋友可以参考一下
    2013-12-12
  • JS创建自定义对象的六种方法总结

    JS创建自定义对象的六种方法总结

    这篇文章主要给大家介绍了关于JS创建自定义对象的六种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • uni-app使用uploadFile上传多张图片的具体实现

    uni-app使用uploadFile上传多张图片的具体实现

    在微信小程序中不支持多张图片上传,需要做循环实现多张图片上传,下面这篇文章主要给大家介绍了关于uni-app使用uploadFile上传多张图片的具体实现,需要的朋友可以参考下
    2023-04-04
  • 微信小程序实现多宫格抽奖活动

    微信小程序实现多宫格抽奖活动

    这篇文章主要为大家详细介绍了微信小程序实现多宫格抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 详解webpack import()动态加载模块踩坑

    详解webpack import()动态加载模块踩坑

    这篇文章主要介绍了详解webpack import()动态加载模块踩坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 教你用javascript实现随机标签云效果_附代码

    教你用javascript实现随机标签云效果_附代码

    下面小编就为大家带来一篇教你用javascript实现随机标签云效果_附代码。小编觉得很实用,现在分享给大家。给大家一个参考
    2016-03-03
  • JS使用可选链操作符 (?.) 进行空值检查的操作

    JS使用可选链操作符 (?.) 进行空值检查的操作

    在 JavaScript 中,处理嵌套对象或数组时,经常会遇到空值检查的问题,传统的空值检查通常比较繁琐,容易导致代码冗长且难以阅读,ES2020 引入了可选链操作符 (?.),极大地简化了这些检查过程,本文介绍了JS使用可选链操作符 (?.) 进行空值检查的操作
    2024-12-12
  • JavaScript中filter() 和find()的区别对比小结

    JavaScript中filter() 和find()的区别对比小结

    filter() 和 find() 都是 JavaScript 数组的高阶函数,用于搜索数组元素,本文主要介绍了JavaScript中filter() 和find()的区别对比,感兴趣的可以了解一下
    2025-05-05

最新评论