0
Любая идея, почему этот код не работает? : \HTML5 Canvas Base64 Ошибка
Demo ->https://jsfiddle.net/vgmFN/89/
<script>
var imgObj1 = new Image();
var img = new Image();var a1=0;
var can = document.getElementById('canvas1');
var ctx = can.getContext('2d');
imgObj1.onload = function() {
ctx.drawImage(imgObj1,1,1);a1 = 1;
}
imgObj1.src = 'favicon.ico';
if (a1 == 1) {
console.log(can.toDataURL())
img.src = can.toDataURL();
document.body.appendChild(img);
a1=0;
}
</script>
Зачем ему загружать var img? Arent, который мы просто делаем toDataURL, который является внутренней функцией js? –
'toDataURL' будет выполняться синхронно, но все изображения загружаются асинхронно. Поэтому в вашем коде 'document.body.appendChild (img);' будет выполняться до того, как 'img' будет полностью загружен и готов к использованию. – markE