我将 HighCharts 与 Python 结合使用来动态创建图表。一切正常,但是我在 IE8 下得到 cannot read property "0"of undefined
异常。不幸的是,我的客户希望它也能在 IE8 下工作。所以这是主要功能的代码:
function generateChart(series) {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'company_chart',
},
xAxis: {
type: "datetime",
},
yAxis: [{
title: {
text: "T1",
},
},{
title: {
text: "T2",
},
},
opposite: true,
}],
plotOptions: {
series: { shadow: false },
column: { shadow: false, },
},
series: series
});
);
现在我的 ajax 请求返回一些数据,我将它存储在变量中,如下所示:
chart_data = [
{
type: "spline",
color: '#ff0000',
yAxis: 0,
data: dataT1,
},
{
type: "column",
color: '#0000ff',
yAxis: 1,
data: dataT2,
}
];
之后我调用 generateChart(chart_data);
。变量 dataT1
和 dataT2
的格式很好,因为它适用于所有其他浏览器。例如 dataT1
可能如下所示:
dataT1 = [ [1325721600000,1.64],
[1325635200000,1.64],
[1325548800000,1.7],
[1325462400000,1.7],];
但是在IE8下还是抛出异常。有什么解决办法吗?
最佳答案
那些悬挂的逗号导致 Internet Explorer 出错。摆脱它们。
这是一个例子:
chart: {
renderTo: 'company_chart', // <--- get rid of that comma
},
Internet Explorer 将像这样的对象文字末尾的逗号视为错误。实际上,您应该会看到“页面错误”警告,但错误通常并不表示真正的根本原因。
编辑 — 显然 IE8 对此并不挑剔,尽管 IE7 是。
再次编辑 — 但是,IE8 将数据数组中最后悬空的逗号解释为应该有一个额外的元素!换句话说:
[1, 2, 3,].length
在 Firefox/Chrome/Safari 中为 3,但在 Internet Explorer 中为 4。当您尝试访问该元素时,浏览器会为您提供 undefined
。
关于javascript - HighCharts.js 在 IE8 下不渲染图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790958/