无法在 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;
}
我正在更改一些现有的 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;
}