Javascript 将图像转换为Base64的HTML

Javascript 将图像转换为Base64的HTML,javascript,angularjs,image,base64,html2canvas,Javascript,Angularjs,Image,Base64,Html2canvas,我正在与这种情况作斗争,在JavaScript变量中有一些HTML标记 我想要的是,将该变量的值转换为图像,并获得base64值: var print_markup = ''; print_markup += '<h2 style="text-align:center">' + $scope.config.business_name + '</h2>'; print_markup += '<p style="text-align:center">' + $sc

我正在与这种情况作斗争,在JavaScript变量中有一些HTML标记

我想要的是,将该变量的值转换为图像,并获得base64值:

var print_markup = '';
print_markup += '<h2 style="text-align:center">' + $scope.config.business_name + '</h2>';
print_markup += '<p style="text-align:center">' + $scope.config.business_address + '</p>';
但我明白了:

html2canvas.js:592未捕获(承诺中)代理在呈现url时必须使用

请参阅以下连结:

请参阅以下连结:


正如@kaido所建议的,
html2canvas
的第一个参数是附加到原始文档中的元素,
如需更多信息,请参见此

,正如@kaido所建议的那样,
html2canvas
的第一个参数是一个元素,附加到原始文档中,
有关更多信息,请参见此

HTML2Canvas需要
ownerDocument.defaultView
,因此您的元素实际上必须是当前DOM的一部分。感谢@kaido,我将元素附加到了它们的主体中,并且有效。HTML2Canvas需要
ownerDocument.defaultView
,因此,您的元素实际上必须是当前DOM的一部分。感谢@kaido,我将该元素附加到了它们的主体中,并且它起了作用。不支持IE。不支持IE。
html2canvas(print_markup, {
    onrendered: function(canvas) {
        var dataURL = canvas.toDataURL();
        var base64String = dataURL.split(',')[1];

   }
})
var node = document.getElementById('my-node');

domtoimage.toPng(node)
    .then (function (dataUrl) {
        var img = new Image();
        img.src = dataUrl;
        document.appendChild(img);
    })
    .catch(function (error) {
        console.error('oops, something went wrong!', error);
    });