欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實(shí)現(xiàn)頁面截圖3種解決方案

 更新時(shí)間:2024年06月20日 11:05:07   作者:高樹悲風(fēng)  
網(wǎng)頁截圖是指將網(wǎng)頁上的內(nèi)容截取下來,并保存為圖片的過程,下面這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)頁面截圖的3種解決方案,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.html2canvas

npm install html2canvas

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

// 設(shè)置定時(shí)器,每隔10秒執(zhí)行一次截圖操作
setInterval(async () => {
  try {
    // 將網(wǎng)頁內(nèi)容轉(zhuǎn)換為canvas元素
    const canvas = await html2canvas(document.body);

    // 將canvas元素轉(zhuǎn)換為圖片文件base64
    const img = canvas.toDataURL('image/png');

    // 圖片文件img 處理上床后端
    
  } catch (error) {
    console.error('截圖失?。?, error);
  }
}, 10000);

2、獲取屏幕流轉(zhuǎn)為圖片

async function screenshot() {  
    // 獲取屏幕流  
    const displayMediaOptions = {  
        video: {  
            cursor: "always"  
        }  
    };  
    const stream = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);  
  
    // 創(chuàng)建一個(gè)video元素來播放屏幕流  
    const video = document.createElement('video');  
    video.srcObject = stream;  
    await video.play();  
  
    // 創(chuàng)建一個(gè)canvas元素來截屏  
    const canvas = document.createElement('canvas');  
    canvas.width = video.videoWidth;  
    canvas.height = video.videoHeight;  
  
    // 將視頻播放的內(nèi)容繪制到canvas上  
    const context = canvas.getContext('2d');  
    context.drawImage(video, 0, 0, canvas.width, canvas.height);  
  
    // 將canvas內(nèi)容轉(zhuǎn)換為base64  
    const base64 = canvas.toDataURL();  
  
    // 關(guān)閉視頻流  
    video.srcObject.getTracks().forEach((track) => track.stop());  
  
    return base64;  
}

3、讓使用者在瀏覽器插件再去調(diào)用插件(不推薦)

總結(jié)

到此這篇關(guān)于JavaScript實(shí)現(xiàn)頁面截圖3種解決方案的文章就介紹到這了,更多相關(guān)js頁面截圖解決方案內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹實(shí)現(xiàn)查找最小值、最大值、給定值算法示例

    JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹實(shí)現(xiàn)查找最小值、最大值、給定值算法示例

    這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹實(shí)現(xiàn)查找最小值、最大值、給定值算法,涉及javascript二叉樹定義、賦值、遍歷、查找等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • 你可能從未使用過的11+個(gè)JavaScript特性(小結(jié))

    你可能從未使用過的11+個(gè)JavaScript特性(小結(jié))

    這篇文章主要介紹了你可能從未使用過的11+個(gè)JavaScript特性(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • js提取中文拼音首字母的封裝工具類

    js提取中文拼音首字母的封裝工具類

    這篇文章主要給大家介紹了關(guān)于利用js實(shí)現(xiàn)的一個(gè)提取中文拼音首字母的封裝工具類,文中給出了詳細(xì)完整的示例代碼,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以直接拿來用,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Javascript 函數(shù)中的參數(shù)使用分析

    Javascript 函數(shù)中的參數(shù)使用分析

    關(guān)于JS中的函數(shù),相信大家已經(jīng)很了解了,其中有些特性呢,感覺還是值得提一提的,下面就說說JS中的函數(shù)吧。
    2010-03-03
  • js實(shí)現(xiàn)日期顯示的一些操作(實(shí)例講解)

    js實(shí)現(xiàn)日期顯示的一些操作(實(shí)例講解)

    下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)日期顯示的一些操作(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 學(xué)習(xí)javascript面向?qū)ο?實(shí)例講解面向?qū)ο筮x項(xiàng)卡

    學(xué)習(xí)javascript面向?qū)ο?實(shí)例講解面向?qū)ο筮x項(xiàng)卡

    這篇文章主要介紹了面向?qū)ο筮x項(xiàng)卡實(shí)現(xiàn)方法,幫助大家更好地學(xué)習(xí)javascript面向?qū)ο螅信d趣的小伙伴們可以參考一下
    2016-01-01
  • JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)

    JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了一些JavaScript中判斷數(shù)據(jù)類型的方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的小伙伴可以了解一下
    2023-07-07
  • npm后面的-S和-D參數(shù)舉例詳解

    npm后面的-S和-D參數(shù)舉例詳解

    這篇文章主要給大家介紹了關(guān)于npm后面的-S和-D參數(shù)舉例詳解的相關(guān)資料,文中還介紹了npm -s和-d的一些區(qū)別,對大家的學(xué)習(xí)或者工作具有一定的參考階級價(jià)值,需要的朋友可以參考下
    2024-01-01
  • JavaScript使用WebSocket實(shí)現(xiàn)實(shí)時(shí)通信的技術(shù)詳解

    JavaScript使用WebSocket實(shí)現(xiàn)實(shí)時(shí)通信的技術(shù)詳解

    WebSocket作為一種高效的通信協(xié)議,為開發(fā)者提供了一種在客戶端和服務(wù)器之間進(jìn)行全雙工通信的方法,本文將深入探討WebSocket技術(shù),并提供實(shí)戰(zhàn)代碼示例
    2024-04-04
  • 最新評論