18

我正在尝试使用http://html2canvas.hertzen.com/截取我的网页截图。我无法使用...初始化画布元素

var canvas = $('body').html2canvas();

如果我能够获得合适的画布,我会遵循类似的东西

var dataUrl = canvas.toDataURL(); //get's image string
window.open(dataUrl);             // display image

不幸的是,IMO 的文件非常有限。http://html2canvas.hertzen.com/documentation.html。我不相信我需要预加载,因为我没有使用任何动态图形(但无论如何都没有走那么远)

我太菜鸟了,不明白这个人是否在使用 html2canvas 进行屏幕捕获方面取得了成功

我似乎没有比这家伙走得更远.. 如何使用 html2canvas 上传屏幕截图?

我理想的解决方案将演示如何用最少的代码创建屏幕截图。(将 html 复制到画布。获取 toDataURL 字符串。输出字符串)

任何见解都非常感谢=)

4

5 回答 5

19

你应该这样使用它:

$('body').html2canvas();
var queue = html2canvas.Parse();
var canvas = html2canvas.Renderer(queue,{elements:{length:1}});
var img = canvas.toDataURL();
window.open(img);

我花了几个小时才弄清楚如何正确使用它。是必需的{elements:{length:1}},由于插件的实现不完整,否则你会得到一个错误。

祝你好运!

于 2012-05-09T23:46:42.660 回答
12

您还可以使用以下内容:

var html2obj = html2canvas($('body'));

var queue  = html2obj.parse();
var canvas = html2obj.render(queue);
var img = canvas.toDataURL();

window.open(img);
于 2012-08-30T11:50:46.523 回答
9

要获取页面的一部分,您可以这样使用它:

$('#map').html2canvas({
onrendered: function( canvas ) {
  var img = canvas.toDataURL()
  window.open(img);
}
于 2012-10-19T09:08:09.287 回答
8

这对我有用。

html2canvas(document.body, {
   onrendered: function(canvas) {
     var img = canvas.toDataURL()
     window.open(img);
  }
});

这为屏幕截图创建了一个新窗口。

我只想要屏幕截图中的一部分页面,特别是容器 div。所以我做了以下事情:

html2canvas($('#myDiv'), {
   onrendered: function(canvas) {
     var img = canvas.toDataURL()
     window.open(img);
  }
});

对于查找相同问题的人,如果上述选项没有帮助,希望这会。

于 2013-04-10T15:58:50.880 回答
1

您可以使用以下代码截取屏幕截图并下载屏幕截图。

html按钮创建

<button class="btn btn-default btn-sm" style="margin:0px 0px -10px 970px; padding:2px 4px 1px 4px" onclick="genScreenshot()"><span class="glyphicon glyphicon-envelope"></span></button>
<a id="test"></a>
<div id="box1"></div>

函数定义

<script type="text/javascript">                         
function genScreenshot() {
html2canvas(document.body, {
  onrendered: function(canvas) {
  $('#box1').html("");

  if (navigator.userAgent.indexOf("MSIE ") > 0 || 
                navigator.userAgent.match(/Trident.*rv\:11\./)) 
        {
    var blob = canvas.msToBlob();
    window.navigator.msSaveBlob(blob,'Test file.png');
  }
  else {
    $('#test').attr('href', canvas.toDataURL("image/png"));
    $('#test').attr('download','screenshot.png');
    $('#test')[0].click();
  }


  }
});
}  
</script>

注意:我创建了一个 html 按钮,我在其中调用了该函数。test是一个属性,box1是用来获取canvas元素的。

于 2016-10-18T06:03:36.720 回答