尝试在javascript中捕获整个页面的屏幕截图(包括用户填写的字段),但html2canvas仅捕获当前窗口,即使我将高度设置为一个巨大的数字。 html2canvas网站示例似乎具有我想要的功能,但我无法理解他们在做什么不同。
<button id="pdfbutton" type="button">Click Me!</button>
<script type="text/javascript">
$( "#pdfbutton" ).click(function() {
html2canvas(document.body, {
onrendered: function(canvas) {
// document.body.appendChild(canvas);
var img = canvas.toDataURL("image/png");
console.log(img);
document.body.appendChild(canvas);
}
// height: 10000
});
});
</script>
请告诉我是否有其他方法可以在javascript按钮上点击屏幕截图(不插入网址,因为用户会在我的网页上填写字段)。
答案 0 :(得分:3)
通过删除html2canvas不支持的样式属性(高度,位置)并在捕获屏幕截图后添加它来解决此问题。在我的情况下,我遇到了问题。
$('.element').css('position','initial'); // Change absolute to initial
$my_view = $('#my-view');
var useHeight = $('#my-view').prop('scrollHeight');
html2canvas($my_view[0], {
height: useHeight,
useCORS: true,
allowTaint: true,
proxy: "your proxy url",
onrendered: function (canvas) {
var imgSrc = canvas.toDataURL();
var popup = window.open(imgSrc);
$('.element').css('position','absolute');
}
});
这将截取包括可滚动部分在内的整个屏幕截图。 check this solution
答案 1 :(得分:0)
Html2Canvas有一个问题,迫使它从顶部窗口的边界渲染一个元素。您可以考虑滚动到元素的顶部。
第二个问题是溢出处理。在父元素上设置overflow: visible
并在导出后将其删除。