У меня есть эта часть кода в .aspx, которая должна печатать выбранную часть моей веб-функции.
<div id="test" class="body-content animated fadeIn">
<a href="javascript:getScreenshot()"> Get Sreenshot </a>
<script>
function getScreenshot() {
html2canvas(divprint, {
onrendered: function(canvas) {
var canvasImg = canvas.toDataURL("image/jpg");
$('#test').html('<img src="'+canvasImg+'" alt="">');
}
});
var printContent = document.getElementById("test");
var printWindow = window.open("", "","left=50,top=50");
printWindow.document.write(printContent.innerHTML);
printWindow.document.write("<script src=\'http://code.jquery.com/jquery-1.10.1.min.js\'><\/script>");
printWindow.document.write("<script>$(window).load(function(){ print(); close(); });<\/script>");
printWindow.document.close();
}
</script>
...
Но при нажатии на текст «Get Sreenshot» ничего не происходит. Вы понимаете, почему? Когда я удаляю
html2canvas(divprint, {
onrendered: function(canvas) {
var canvasImg = canvas.toDataURL("image/jpg");
$('#test').html('<img src="'+canvasImg+'" alt="">');
}
});
, он работает более или менее хорошо
Последняя версия html2canvas использует обещания, а не обратный вызов onrendered. например.
html2canvas(document.querySelector('#my-thing')).then(function(canvas) {
// do something with canvas here.
console.log(canvas);
});