4
我是JS和开发人员的新手,但我希望能得到一些帮助,解决一直困扰我几天的问题。HTML2Canvas DOM(Angular)
基本上,我试图让HTML2Canvas和Angular一起玩。我有一个div(ID是“发票”)内的部分我的HTML文件之一,我在我的控制下:
sampleApp.controller('InvoiceController', function($scope) {
$(document).ready(function(){
var source = document.getElementById('invoice');
$('.submit').click(function() {
html2canvas(source, {
logging: 'on',
allowTaint: 'true',
onrendered: function(canvas) {
var myImage = canvas.toDataURL("image/jpeg");
window.open(myImage);
}
});
});
});
我完全不知所措,为什么这不工作。该脚本运行时没有任何错误,但它只是在没有图像的情况下踢出一个空白页面。它看起来像它的东西与DOM,因为这是我收到的控制台:
html2canvas: Preload starts: finding background-images html2canvas.js:21
html2canvas: Preload: Finding images html2canvas.js:21
html2canvas: Preload: Done. html2canvas.js:21
html2canvas: start: images: 0/0 (failed: 0) html2canvas.js:21
Finished loading images: # 0 (failed: 0) html2canvas.js:21
html2canvas: Renderer: Canvas renderer done - returning canvas obj
编辑:想我会补充说,另一个原因是我知道这件事情与角的DOM负荷是如何因为使用document.body作为var works。然而,我只是想从一个div中创建一个图像。
将'console.log(source);'添加到您的点击处理程序中的第一行,以确保您确实拥有源元素。 –
非常感谢您的及时回复,Jon。我试过了,'source'div正确显示在控制台中。有任何想法吗? – jayg
仔细检查源'console.log($(source).innerHTML());'的内容。我不知道你是否展开了控制台中的前一个源节点来检查它的内容。这将明确地做到这一点。 –