javascript - 如何使用 javascript 在 html 中截取屏幕截图?

标签 javascript html screenshot

我是 html 和 javascript 的新手。我正在尝试截取我的 html 页面并将其保存为 jpgpng 文件。

这是我的 html 图片 enter image description here

我想通过按图像右上角的“图像保存”按钮,通过拖放 divs 截取右侧(灰色)的屏幕截图。

如何使用 html 和 javascript 截屏? 我看到了一些 html2canvas 但这不是我想要的。我觉得..

有人对此有想法吗?

谢谢,

附注如果你想要我的 html 代码,我可以EDIT

最佳答案

您只能使用 Canvas 捕获图像或视频帧作为屏幕截图。但是如果你想捕获网页上的特定元素,试试这样的库:html2canvas

代码如下:

注意:在 drawImage() 函数中仔细调整尺寸

$(".drag").draggable();
$(".drag").droppable();
var takeScreenShot = function() {
    html2canvas(document.getElementById("container"), {
        onrendered: function (canvas) {
            var tempcanvas=document.createElement('canvas');
            tempcanvas.width=350;
            tempcanvas.height=350;
            var context=tempcanvas.getContext('2d');
            context.drawImage(canvas,112,0,288,200,0,0,350,350);
            var link=document.createElement("a");
            link.href=tempcanvas.toDataURL('image/jpg');   //function blocks CORS
            link.download = 'screenshot.jpg';
            link.click();
        }
    });
}
#container{
    width:400px;
    height:200px;
}
#rightcontainer{
    width:300px;
    height:200px;
    background:gray;
    color:#fff;
    margin-left:110px;
    padding:10px;
}
#leftmenu{
    color:#fff;
    background-color:green;
    width:100px;
    height:200px;
    position:fixed;
    left:0;
    padding:10px;
}

button{
    display:block;
    height:20px;
    margin-top:10px;
    margin-bottom:10px;
}
.drag{
  width:40px;
  height:20px;
  background-color:blue;
  z-index:100000;
  margin-top:10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>
  
  
<button onclick="takeScreenShot()">Snapshot</button>
<div id="container">
    <div id="leftmenu">
      Left Side
      <div class="drag">
      </div>
      <div class="drag">
      </div>
      <div class="drag">
      </div>
      Drag----------->
            &
      Click Snapshot
    </div>
    <div id="rightcontainer">
        Right Side
    </div>
</div>

关于javascript - 如何使用 javascript 在 html 中截取屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42828187/

相关文章:

php - 使用 css 在 phpInfo 中自动换行

html - 如何强制浏览器清除缓存以便显示我网站上的更改?

javascript - jQuery UI Accordion - 上一节的内容在点击不同部分时加载

c++ - 以编程方式在 OSX 中抓取屏幕截图并转换为 OpenCV Mat

python - 在 Linux 上通过 Python 脚本截取屏幕截图

javascript - 在Promise中,response.status返回的是其他Promise而不是状态码

javascript - 编写 JQuery 以更改 Drupal 7 的 TB Megamenu 行为

javascript - 如何将匿名函数的返回值存储到 JavaScript 中的变量?

javascript - fabricjs 路径的边界框偏移量

selenium - 如何在Selenium中的 headless (headless)Firefox中使用--screenshot和python