getElementsByTagName(...)。0. parentNode'为null或不是对象 [英] getElementsByTagName(...).0.parentNode' is null or not an object
问题描述
我正在为我的应用程序使用Google Chart,我必须将生成的图表转换为图像字节代码。我已经在Firefox和Chrome中完成了这个,但 IE8没有响应获取svg元素,所以现在我无法从给定的div元素中获取字节代码。我将将div元素转换为字节代码的脚本如下所示
I'm using Google Chart for my application and I have to convert the generated chart to image byte code. I've done this in Firefox and Chrome but IE8 is not responding to get the svg element, So now I can't to get the byte code from the given div element. My script to convert div element to byte code is given below
function getElement() {
for (var i = 0; i < divelement.length; i++) {
toImg(document.getElementById(divelement[i]), i, medicalconditionid[i]);
}
}
function toImg(chartContainer, i, id) {
var field = document.createElement("input");
field.type = "hidden";
field.id = "img_code" + i;
field.name = "imgcode";
document.getElementById("dynamicText").appendChild(field);
document.getElementById('img_code' + i).value = id + "_" + getImgData(chartContainer);
i++;
}
function getImgData(chartContainer) {
var chartArea = chartContainer.getElementsByTagName('svg')[0].parentNode;
var svg = chartArea.innerHTML;
var doc = chartContainer.ownerDocument;
var canvas = doc.createElement('canvas');
canvas.setAttribute('width', chartArea.offsetWidth);
canvas.setAttribute('height', chartArea.offsetHeight);
canvas.setAttribute(
'style',
'position: absolute; ' +
'top: ' + (-chartArea.offsetHeight * 2) + 'px;' +
'left: ' + (-chartArea.offsetWidth * 2) + 'px;');
doc.body.appendChild(canvas);
canvg(canvas, svg);
var imgData = canvas.toDataURL("image/png");
canvas.parentNode.removeChild(canvas);
return imgData;
}
我得到行:85
错误。
错误:'getElementsByTagName(...)。0. parentNode'在IE8中为空或不是对象
推荐答案
我在IE8中发现不支持svg或canvas元素,所以像谷歌图表,D3和jqplot这样的javascript图表库将图表转换为vml格式所以我们不能像上面的代码那样得到字节码。在我的应用程序中谷歌图表可以生成不推荐使用的图像格式图表,但我使用此图像图表并将图像URL发送到动作类并将网址转换为图像。请参阅Google图表图表的此链接
I found in IE8 there is no support for svg or canvas element, so the javascript charting libraries like google charts, D3 and jqplot convert the charts to vml format so we cant to get the byte code as like above code. In my application google chart can produce image format charts that is deprecated but i used this image chart and send the image url to action class and convert the url to image. Refer this link for google image charts
这篇关于getElementsByTagName(...)。0. parentNode'为null或不是对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!