无法在 JavaScript 中设置 属性 'src' of null

Cannot set property 'src' of null in JavaScript

我正在更改一些现有的 javascript 代码,这些代码将 HTML 文档中的图像导出到 word 文档。新功能将捕获 HTML 中的 canvas 数据,将其转换为 .png 然后导出,但是当我收到“无法设置 属性 'src' 为 null”时代码到达这部分:

        //Capture all canvas data
        var canvasData = markup.find('canvas');

        var tempImage = new Image();

        ////Array to hold of the images
        var imageArray = Array();
        for (var i = 0; i < canvasData.length; i++) {
            tempImage.src = canvasData[i].toDataURL("image/png");
            imageArray[i] = tempImage;
            tempImage = null;
        }

如有任何帮助,我们将不胜感激!

将你的 var tempImage = new Image(); 移到循环内。像

for (var i = 0; i < canvasData.length; i++) {
    var tempImage = new Image();
    tempImage.src = canvasData[i].toDataURL("image/png");
    imageArray[i] = tempImage;
    // not really required
    // tempImage = null;
}

如您所见,您正在使循环内的 tempImage 无效,在第一次迭代后它将被分配一个空值,因此在下一次迭代中您将尝试将 src 设置为空。这就是您收到此错误的原因。将 var tempImage = new Image(); 放入循环中。

   for (var i = 0; i < canvasData.length; i++) {
       var tempImage = new Image();
        tempImage.src = canvasData[i].toDataURL("image/png");
        imageArray[i] = tempImage;
        tempImage = null;
    }