Javascript-如何等待图像加载?无法使img.load工作?

Javascript-如何等待图像加载?无法使img.load工作?,javascript,canvas,Javascript,Canvas,在我的javascript中,我将画布绘制到画布上,然后我将画布转换为png并显示在div中,代码如下: var dataURL = document.getElementById('myCanvas').toDataURL("image/png"); var imgObj = new Image(); imgObj.src = dataURL; imgObj.onload = function() {document.getElementById('myImg').appendChild(im

在我的javascript中,我将画布绘制到画布上,然后我将画布转换为png并显示在div中,代码如下:

var dataURL = document.getElementById('myCanvas').toDataURL("image/png");
var imgObj = new Image();
imgObj.src = dataURL;
imgObj.onload = function() {document.getElementById('myImg').appendChild(imgObj); };
当我在绘制画布后直接调用它时,我会在“myImg”中得到一个完全空白的图像,但如果我通过单击链接调用完全相同的代码,它会正确绘制:

<a id="viewImgLnk" href="javascript:void()" onclick=" return convertCanvasToImage();">View Image</a>

<script>
    function convertCanvasToImage(){
        var dataURL = document.getElementById('myCanvas').toDataURL("image/png");
        var imgObj = new Image();
        imgObj.src = dataURL;
        imgObj.onload = function() {document.getElementById('myImg').appendChild(imgObj); };
    }
</script>

函数convertCanvasToImage(){
var dataURL=document.getElementById('myCanvas').toDataURL(“image/png”);
var imgObj=新图像();
imgObj.src=数据URL;
imgObj.onload=function(){document.getElementById('myImg').appendChild(imgObj);};
}

如何在没有链接的情况下直接加载图像?

我在管理员的帮助下获得了代码

setTimeout(function() {
    var dataURL = document.getElementById('myCanvas').toDataURL("image/png");
    var imgObj = new Image();
    imgObj.src = dataURL;
    imgObj.onload = function() {document.getElementById('myImg').appendChild(imgObj); };
}, 300);

将脚本放在body标记的末尾。直接调用代码时,代码位于何处?你确定现在已经画好画布了吗?@如果我调用alert(document.getElementById('myCanvas').toDataURL(“image/png”);我得到一个巨大的字符串,我想这意味着我的画布已加载,或者是否有方法等待画布也加载?请尝试setTimeout()。但是你没有回答你的代码在哪里?啊,对不起,它位于页面上包含的外部文件中